LinuxForum.Fans
Тема

Virtualbox с консоли

Автор: XliN 34 сообщений 15973 просмотров
#156806

Есть машинка в локалке с Debian. Задача на ней поднять виртуальную машину с CentOS.
Делаю так:

Создаю и регистрирую машину
[console]VBoxManage createvm -name dns-slave -register[/console]
Создаю два IDE интерфейса (сам жиск под систему и для исошки)
[console]VBoxManage storagectl dns-slave --name "IDE Controller" --add ide
VBoxManage storageattach dns-slave --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium hard.vdi
VBoxManage storageattach dns-slave --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium CentOS-5.6-i386-netinstall.iso[/console]
Выделяю память, указываю тип ОС, и включаю VRDE для удаленного стола
[console]VBoxManage modifyvm dns-slave --ostype RedHat --memory 256 --vrde on[/console]
Стартую
[console]VBoxManage startvm dns-slave --type headless
Waiting for the VM to power on...
VM has been successfully started.[/console]

Вот как к ней теперь удаленно приконектиться по 3389 порту из дома?.
Нужно сделать проброс портов, но как? Что писать на шлюзе?

iptables --table nat --append PREROUTING -i ppp0 -p tcp --dport 3389 -j DNAT --to-destination КУДА-ПЕРЕНАПРАВЛЯТЬ
iptables -A FORWARD -i ppp0 -o vlan3 -d КУДА_ПЕРЕНАПРАВЛЯТЬ -p tcp -m tcp --dport 3389 -j ACCEPT

Как узнать какой имеет IP гостевая ОС dns-slave?

Вот свойства гостевой ОС которые получились.

Показать

Name: dns-slave
Guest OS: Red Hat
UUID: f32df85b-f081-4d3c-bc5b-87d1e95cd9aa
Config file: /home/xlin/VirtualBox VMs/dns-slave/dns-slave.vbox
Snapshot folder: /home/xlin/VirtualBox VMs/dns-slave/Snapshots
Log folder: /home/xlin/VirtualBox VMs/dns-slave/Logs
Hardware UUID: f32df85b-f081-4d3c-bc5b-87d1e95cd9aa
Memory size: 256MB
Page Fusion: off
VRAM size: 8MB
HPET: off
Chipset: piix3
Firmware: BIOS
Number of CPUs: 1
Synthetic Cpu: off
CPUID overrides: None
Boot menu mode: message and menu
Boot Device (1): Floppy
Boot Device (2): DVD
Boot Device (3): HardDisk
Boot Device (4): Not Assigned
ACPI: on
IOAPIC: off
PAE: off
Time offset: 0 ms
RTC: local time
Hardw. virt.ext: on
Hardw. virt.ext exclusive: on
Nested Paging: on
Large Pages: off
VT-x VPID: on
State: running (since 2011-04-29T16:50:15.601000000)
Monitor count: 1
3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address:
Teleporter Password:
Storage Controller Name (0): IDE Controller
Storage Controller Type (0): PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0): 2
Storage Controller Port Count (0): 2
Storage Controller Bootable (0): on
IDE Controller (0, 0): /home/xlin/VirtualBox VMs/dns-slave/hard.vdi (UUID: b3afb4cc-ac71-465a-b7fd-5004e916c4dd)
IDE Controller (1, 0): /home/xlin/soft/CentOS-5.6-i386-netinstall.iso (UUID: 4ec01438-dace-41a5-a705-3e98b3357491)
NIC 1: disabled
NIC 2: disabled
NIC 3: disabled
NIC 4: disabled
NIC 5: disabled
NIC 6: disabled
NIC 7: disabled
NIC 8: disabled
Pointing Device: PS/2 Mouse
Keyboard Device: PS/2 Keyboard
UART 1: disabled
UART 2: disabled
Audio: disabled
Clipboard Mode: Bidirectional
Video mode: 720x400x0
VRDE: enabled (Address 0.0.0.0, Ports , MultiConn: off, ReuseSingleConn: off, Authentication type: null)
Video redirection: disabled
USB: disabled

USB Device Filters:

<none>

Available remote USB devices:

<none>

Currently Attached USB Devices:

<none>

Shared folders: <none>

VRDE Connection: not active
Clients so far: 0

Guest:

OS type: RedHat
Additions run level: 0
Configured memory balloon size: 0 MB

#156823

Создал сетевую карточку в режиме бриджа
[console]VBoxManage modifyvm dns-slave --nic1 bridged[/console]
У себя прописал

br0 Link encap:Ethernet HWaddr 70:71:bc:4a:8f:ac
inet addr:192.168.1.173 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::7271:bcff:fe4a:8fac/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:862 errors:0 dropped:0 overruns:0 frame:0
TX packets:625 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:69315 (67.6 KiB) TX bytes:100624 (98.2 KiB)

eth0 Link encap:Ethernet HWaddr 70:71:bc:4a:8f:ac
inet6 addr: fe80::7271:bcff:fe4a:8fac/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:869 errors:0 dropped:0 overruns:0 frame:0
TX packets:638 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:81803 (79.8 KiB) TX bytes:103702 (101.2 KiB)
Interrupt:44 Base address:0x6000

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0

auto br0
iface br0 inet dhcp
bridge_ports eth0 vbox0

При старте лезет ошибка

Waiting for the VM to power on...
VBoxManage: error: Failed to open/create the internal network 'HostInterfaceNetworking-' (you might need to modprobe vboxnetflt to make it accessible) (VERR_INVALID_PARAMETER).
VBoxManage: error: Unknown error creating VM (VERR_INVALID_PARAMETER)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component Console, interface IConsole, callee

Модуль vboxnetflt загружен

vboxnetflt 23683 0
vboxdrv 147237 2 vboxnetadp,vboxnetflt
#156970
--=XliN=-- написал:
Есть машинка в локалке с Debian. Задача на ней поднять виртуальную машину с CentOS.
....................
Вот как к ней теперь удаленно приконектиться по 3389 порту из дома?.

Вначале ответ на последний вопрос - в голове путаница. Порт 3389 - это порт не гостевой машины, не виртуальной, а порт хоста, на котором развернута гостевая операционная система в виртуальной машине. Если у тебя на хосту-носитетеле есть несколько виртуалок, то каждой виртуалке надо назначать свой уникальный номер порта. Но IP-адрес будет всегда один, это адрес хоста-носителя. Это первое.
Второе. Ни разу не делал виртуалки в VB из консоли. Предпочитаю иной, более простой путь. А именно - нам даны от VB GUI. Ими и пользуемся.
1. На хосту, на котором разворачиваем виртуальную машину, поднимаем систему ремутного доступа. Любую.
2. Далее в этом ремутном доступе запускаем гуй VB и создаем в нем виртуальную машину.
3. В этом же гуе инсталлируем нужную ось.
4. В гостевой оси настраиваем свой ремутный доступ (оптимальный для данной оси) после чего забываем доступ к этой гостевой машине через хост-носитель. Она будет держать свой ремутный доступ без каких либо ограничений (в том числе и лицензионных) от VirtualBox'а

#156986
Cruiser78 написал:
А именно - нам даны от VB GUI. Ими и пользуемся.

Не прокатит. На машину есть только ssh доступ без иксов. Именно по этой причине и хочу использовать VB из консоли. Хотя на ней иксы установлены )))

Cruiser78 написал:
Порт 3389 - это порт не гостевой машины, не виртуальной, а порт хоста, на котором развернута гостевая операционная система в виртуальной машине.

Так и есть, для виртуальной машины я назначил порт 3390, на хостовой машине ничего ни делал. Там даже iptables пустой.

Cruiser78 написал:
Но IP-адрес будет всегда один, это адрес хоста-носителя. Это первое.

Т.е. Если я на хостовой машине создал 5 виртуальных, дал им уникальные порты, то конектиться я должен все равно по IP хостовой (в данном случаи дебиан) с указанием конкретного порта для определенной гостевой ОС?

UPD: Какую прогу поставить на хостовую машину, что бы я удаленно из под винды к ней подрубился и на какой порт?
На шлюзе я так понимаю надо сделать перенаправление портов что бы достучаться до неё. С виндой я конектюсь без проблем, а вот с линуксовой машиной не получается.

Как вариант сделать в GUI новую систему у себя дома, только создать, и потом перенести конфигурационные фалы куда надо и заводить уже от туда. Но мне кажется это не тру метод и не получается включить удаленку на гостевой ОС, где ставится галочка?

#157012

--=XliN=--, а почему VB?

#157015
newzenon написал:
а почему VB?

Да просто )) С другими не получилось, я раньше писал на этом форуме. Вернее получилось но только с GUI. Я вообще это все делаю для саморазвития.
Нет у меня точной инструкции как это сделать по другому. А с VB проще, да и много инфы в инете. Почему бы и не попробовать.

#157022

Короче, система стартанула, после того как я добавил порт и указал на какой интерфейс вешаться

[console]VBoxManage controlvm dns-slave poweroff
VBoxManage modifyvm dns-slave --bridgeadapter1 br0
VBoxManage modifyvm dns-slave --vrdeport 3390
VBoxManage startvm dns-slave --type headless[/console]

Waiting for the VM to power on...
VM has been successfully started.

Вот такой у нее теперь конфиг.

Показать
Name: dns-slave
Guest OS: Red Hat
UUID: 2e2814c3-c6ea-44cf-8da0-da4ac529de65
Config file: /home/xlin/VirtualBox VMs/dns-slave/dns-slave.vbox
Snapshot folder: /home/xlin/VirtualBox VMs/dns-slave/Snapshots
Log folder: /home/xlin/VirtualBox VMs/dns-slave/Logs
Hardware UUID: 2e2814c3-c6ea-44cf-8da0-da4ac529de65
Memory size: 256MB
Page Fusion: off
VRAM size: 8MB
HPET: off
Chipset: piix3
Firmware: BIOS
Number of CPUs: 1
Synthetic Cpu: off
CPUID overrides: None
Boot menu mode: message and menu
Boot Device (1): Floppy
Boot Device (2): DVD
Boot Device (3): HardDisk
Boot Device (4): Not Assigned
ACPI: on
IOAPIC: off
PAE: off
Time offset: 0 ms
RTC: local time
Hardw. virt.ext: on
Hardw. virt.ext exclusive: on
Nested Paging: on
Large Pages: off
VT-x VPID: on
State: running (since 2011-04-30T10:21:38.847000000)
Monitor count: 1
3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address:
Teleporter Password:
Storage Controller Name (0): IDE Controller
Storage Controller Type (0): PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0): 2
Storage Controller Port Count (0): 2
Storage Controller Bootable (0): on
IDE Controller (0, 0): /home/xlin/VirtualBox VMs/hard.vdi (UUID: a3c546e6-1cf5-41a0-a07d-ec352ab72923)
IDE Controller (1, 0): /home/xlin/soft/CentOS-5.6-i386-netinstall.iso (UUID: b486bac5-dc91-4f28-82dd-a6d8ab5b7f05)
NIC 1: MAC: 080027686727, Attachment: Bridged Interface 'br0', Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0
NIC 2: disabled
NIC 3: disabled
NIC 4: disabled
NIC 5: disabled
NIC 6: disabled
NIC 7: disabled
NIC 8: disabled
Pointing Device: PS/2 Mouse
Keyboard Device: PS/2 Keyboard
UART 1: disabled
UART 2: disabled
Audio: disabled
Clipboard Mode: Bidirectional
Video mode: 720x400x0
VRDE: enabled (Address 0.0.0.0, Ports 3390, MultiConn: off, ReuseSingleConn: off, Authentication type: null)
Video redirection: disabled
USB: disabled

USB Device Filters:

<none>

Available remote USB devices:

<none>

Currently Attached USB Devices:

<none>

Shared folders: <none>

VRDE Connection: not active
Clients so far: 0

Guest:

OS type: RedHat
Additions run level: 0
Configured memory balloon size: 0 MB

Мне не нравиться вот эта строчка
[console]VRDE: enabled (Address 0.0.0.0, Ports 3390, MultiConn: off, ReuseSingleConn: off, Authentication type: null)[/console]

На шлюзе прописал правила

text
iptables --table nat --append PREROUTING -i ppp0  -p tcp --dport 3390 -j DNAT --to-destination 192.168.1.173
iptables -A FORWARD -i ppp0 -o vlan4 -d 192.168.1.173 -p tcp -m tcp --dport 3390 -j ACCEPT

Иду в винду и пробую подрубиться. Не выходит.

#157029

Вот траф на шлюзе
[console]# tcpdump -i vlan4 -nn -ttt host 192.168.1.173 and port 3390[/console]

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vlan4, link-type EN10MB (Ethernet), capture size 96 bytes
000000 IP 192.168.1.77.63113 > 192.168.1.173.3390: S 616873642:616873642(0) win 16384 <mss 1412,nop,nop,sackOK>
000431 IP 192.168.1.173.3390 > 192.168.1.77.63113: R 0:0(0) ack 616873643 win 0
553894 IP 192.168.1.77.63113 > 192.168.1.173.3390: S 616873642:616873642(0) win 16384 <mss 1412,nop,nop,sackOK>
000478 IP 192.168.1.173.3390 > 192.168.1.77.63113: R 0:0(0) ack 1 win 0
502369 IP 192.168.1.77.63113 > 192.168.1.173.3390: S 616873642:616873642(0) win 16384 <mss 1412,nop,nop,sackOK>
000427 IP 192.168.1.173.3390 > 192.168.1.77.63113: R 0:0(0) ack 1 win 0

Вот хостовая машина
[console]root@admin:~# tcpdump -i br0 -nn -ttt host 192.168.1.77 and not port 22[/console]

text
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br0, link-type EN10MB (Ethernet), capture size 65535 bytes
00:00:00.000000 IP 192.168.1.77.63135 > 192.168.1.173.3390: Flags S seq 866325491, win 16384, options [mss 1412,nop,nop,sackOK], length 0
00:00:00.000053 IP 192.168.1.173.3390 > 192.168.1.77.63135: Flags R., seq 0, ack 866325492, win 0, length 0
00:00:00.540484 IP 192.168.1.77.63135 > 192.168.1.173.3390: Flags S., seq 866325491, win 16384, options [mss 1412,nop,nop,sackOK], length 0
00:00:00.000042 IP 192.168.1.173.3390 > 192.168.1.77.63135: Flags R, seq 0, ack 1, win 0, length 0
00:00:00.503036 IP 192.168.1.77.63135 > 192.168.1.173.3390: Flags S, seq 866325491, win 16384, options [mss 1412,nop,nop,sackOK], length 0
00:00:00.000042 IP 192.168.1.173.3390 > 192.168.1.77.63135: Flags R, seq 0, ack 1, win 0, length 0
#157040

Огромная просьба, те у кого стоит VB с настроенным VRDE, дайте мне посмотреть на ваш конфиг. Интересует строчка
[console]VRDE: enabled (Address 192.168.1.173, Ports 3390, MultiConn: off, ReuseSingleConn: off, Authentication type: null)[/console]
Какой ему тут IP указывать? Я указал IP от br0

Покажите выхлоп
[console]VBoxManage showvminfo dns-slave ИМЯ-МАШИНЫ[/console]

#157051

А так не пробовал?
qemu -nographic
Запустит qemu как обычную консольную программу, в итоге будет перенаправлен serial port в консоль.
"Normally, QEMU uses SDL to display the VGA output. With this option, you can totally disable graphical output so that QEMU is a simple command line application. The emulated serial port is redirected on the console. Therefore, you can still use QEMU to debug a Linux kernel with a serial console."

Или в режиме демона типа так:
qemu -m 512 -hda qemu.img -localtime -daemonize -net nic,model=rtl8139 -net tap,ifname=tap0

#157059

newzenon,
А есть руководство полное. От создания и запуска? Мне важно удаленно ее поставить.

#157154
--=XliN=-- написал:

Т.е. Если я на хостовой машине создал 5 виртуальных, дал им уникальные порты, то конектиться я должен все равно по IP хостовой (в данном случаи дебиан) с указанием конкретного порта для определенной гостевой ОС?

Именно так. Более того, именно подключение к данному порту на хостовой машине позволит дистанционно посмотреть на процесс загрузки гостевой оси. Даже тогда, когда там еще не назначено никких сетевых интерфейсов.

--=XliN=-- написал:

UPD: Какую прогу поставить на хостовую машину, что бы я удаленно из под винды к ней подрубился и на какой порт?

Любой RDP-клиент. Сам VB в комплекте поставки предлагает rdesktop-vrdp. Если ходить из Windows, то там свой RDP-клиент.

--=XliN=-- написал:

На шлюзе я так понимаю надо сделать перенаправление портов что бы достучаться до неё. С виндой я конектюсь без проблем, а вот с линуксовой машиной не получается.

Здесь всё как настроишь. Я на виндовые виртуальные машины захожу через 3389-й порт хоста (то есть не поднимаю ремутный десктоп в винде за ненадобностью). А в линуксе - поднимаю RX на 22м порту гостевой машины. И получается очень вкусно.

#157182

Cruiser78, Ну так как мне это сделать? Меня уже все бесить начинает. Башка кипит. На пальцах можно?

шлюз 192.168.1.77 - я на него лезу через ssh. Потом уже с него лезу по ssh на хостовую машину 192.168.1.173, на которой и надо поднять ВМ и приконектиться с винды.

Вот так это выглядит.
[console][root@ldap ~]# ssh 192.168.1.173 -l root
root@192.168.1.173's password:
Linux admin 2.6.38-2-686 #1 SMP Thu Apr 7 05:24:21 UTC 2011 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Apr 30 18:45:44 2011 from 192.168.1.77
root@admin:~# su xlin
xlin@admin:/root$ VBoxManage startvm dns-slave --type headless
Waiting for the VM to power on...
VM has been successfully started.[/console]
Сам я сижу в XP удаленно.

#157234

На хостовой машине (192.168.1.173) изменить порт ssh
/etc/ssh/ssh_config
Port 10001

на 192.168.1.77
#Порт маппинг sshd
iptables -t nat -A PREROUTING -p tcp -i $inet --dport 10001 -j DNAT --to-destination 192.168.1.173:10001
iptables -A FORWARD -p tcp -s 192.168.1.173 --sport 10001 -j ACCEPT
iptables -A FORWARD -p tcp -d 192.168.1.173 --dport 10001 -j ACCEPT

#157287
--=XliN=-- написал:
Cruiser78, Ну так как мне это сделать? Меня уже все бесить начинает. Башка кипит. На пальцах можно?

Для приконнектится с винды:
1. Надеюсь, что у тебя на виндовой ремутной машине есть rdesktop (не знаю точно, как он под вынью называется).
2. Настраиваешь шлюз так, как сказал Kettler. Только тебе надо пробрасывать порт не 22й, а 3389-й. То есть пробрасывать порт 3389 (или какой иной, какой захочешь) шлюза на хостовую машину в порт 3389 (или в тот, который назначешь на хосту).
3. Запускаешь на хосту виртуальную машину.
4. Коннектишься своим виндовым rdesktop'ом к порту 3389 шлюза (он пробросит трафик дальше).
5. Работаешь в режиме ремутного доступа с виртуальной машиной, поднимаешь в ней нужную гостевую ось.

--=XliN=-- написал:
шлюз 192.168.1.77 - я на него лезу через ssh. Потом уже с него лезу по ssh на хостовую машину 192.168.1.173, на которой и надо поднять ВМ и приконектиться с винды.

А это - канал управления самой виртуальной машиной (не гостевой осью, а именно виртуальной машиной). Как только получаешь, что виртуалка поднята, так к ней можно коннектится ремутно, по 3389.
============================
Да, кстати, добавлю - если свяжешся с VirtualBox, то на этой машине KVM уже не поставишь. Они друг друга не любят и предпочитают работать в "гордом одиночестве".

#157349

Между выбором vb и kvm стоит проц
если есть поддержка виртуализации имхо kvm рулит иначе vb

#157466

Мда... труба. Я вчера психанул и поломал VB... Начал ставить 4 и 3 версии. Теперь модули для ядра не работают.
KVM - у меня не прокатит. Я как всегда использую Intel Atom вот такой конфигурации http://mgkb1.dyndns.org/bench.html

Сейчас попробую все восстановить и попробовать по шагам. Что буду делать расскажу по шагам, как раз можно будет потом мануал кинуть в вики например.

Давайте чуть обобщим.

Первое что я сделаю, это на шлюзе 192.168.1.77 проброшу порт 3389 на хостовую машину (Debian)
Второе. На хостовой машине запускаю виртуальную.

Так? Все элементарно, но не работает.
По вашим постам следует, что я дальше могу со своей винды из дома конектиться через mstsc -v mgkb1.dyndns.org:3389 уже на виртуальную машину, ан нет... не работает.

Войдите или зарегистрируйтесь, чтобы ответить.