5

У меня есть 64-битная гостевая ОС Ubuntu 9.04 для настольных компьютеров, работающая на 64-битной хостовой ОС Ubuntu 9.04 для настольных компьютеров (да, та же ОС). Я хотел бы запустить веб-сервер на гостевой и сделать его доступным через NAT на хосте.

Я (кажется, я) следовал инструкциям перенаправления портов VirtualBox, но гостевая / виртуальная машина не запускается после того, как я выполню настройку.

Вот конфигурация, которую я запустил:

VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol" TCP
VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort" 80
VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 8080

Где <Guest Name> - имя образа гостевой виртуальной машины.

Ошибка выглядит так:

Та же самая ошибка происходит независимо от того, запускаю ли я конфигурацию во время работы виртуальной машины или не работает.

Гостевые дополнения установлены.

Как правильно настроить переадресацию порта NAT? Что вызывает эту ошибку?

3 ответа3

5

получить все параметры, которые вы сделали для этого WM с помощью команды:

VBoxManage.exe getextradata "Name_of_VM" enumerate

Вы должны увидеть все значения, переданные в ВМ.

Key: GUI/SaveMountedAtRuntime, Value: yes
Key: GUI/ShowMiniToolBar, Value: yes
Key: GUI/MiniToolBarAlignment, Value: bottom
Key: GUI/LastCloseAction, Value: save
Key: GUI/LastWindowPostion, Value: 345,133,640,522
Key: GUI/Fullscreen, Value: off
Key: GUI/Seamless, Value: off
Key: GUI/AutoresizeGuest, Value: on
Key: GUI/MiniToolBarAutoHide, Value: on
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort, Value: 22
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort, Value: 22

Удалите все строки, начинающиеся с VBoXInternal, скопировав и вставив строку в команду, подобную этой

VBoxManage.exe setextradata "Name_of_VM" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort"

без значения до конца. В конце вы должны перечислить снова и не видеть больше строк VBoxInternal.

Теперь вы можете снова создать правила NAT с другим названием для правил.

Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort, Value: 2222
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort, Value: 22
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol, Value: TCP
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol, Value: TCP
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort, Value: 80
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort, Value: 8080

В Linux вы должны помнить, что PORTS <1024 НЕ следует перенаправлять. используйте 2222 для guestsh и 8080 для guesthttp (пример). Для простоты использования я лично использую порт <1014 под WINDOWS.

Надеюсь, это поможет вам.

(Извините за английский! Я француженка:P)

Jacques.guensherian

3

У меня была та же проблема - я думаю, что Oracle изменил способ настройки NAT. Теперь намного чище. Это скопировано из руководства пользователя, которое по-прежнему находится по адресу: http://www.virtualbox.org/manual/UserManual.html

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,127.0.0.1,2222,,22"

«Это перенаправляет весь TCP-трафик, поступающий на локальный интерфейс (127.0.0.1) через порт 2222, на порт 22 в гостевой системе.« В гостевой ».

1

У меня был тот же симптом, когда я настраивал переадресацию портов в VirtualBox.

Когда я создаю новые виртуальные машины в VirtualBox, сетевой адаптер по умолчанию - e1000 , а не pcnet в соответствии с инструкциями, которые вы выполнили.

Если вы измените настройки конфигурации на:

VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/Protocol" TCP
VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/GuestPort" 80
VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/HostPort" 8080

Это должно решить вашу проблему.


Вышеупомянутая опция конфигурации будет работать для первого адаптера e1000 , следовательно, e1000/0 в настройках. Дважды проверьте, какой сетевой адаптер используется виртуальной машиной, на которую вы пытаетесь перенести порт.

На моей установке доступны два сетевых адаптера "PcNet" и три "Intel Pro 1000".

Адаптеры обозначаются следующими ключами:

  • Первая PCNet: pcnet pcnet/0
  • Вторая PCNet: pcnet pcnet/1
  • Первый Intel PRO/1000: e1000/0
  • Второй Intel PRO/1000: e1000/1
  • Третий Intel PRO/1000: e1000/2

Если ваш адаптер является, например, вторым «PRO /1000» в списке, то вам нужно изменить вышеуказанный конфиг на e1000 /1 (и т.д.).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .