Переадресация портов VirtualBox NAT на Ubuntu 64?

6692
Greg Mattes

У меня есть 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>имя образа гостевой виртуальной машины.

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

Переадресация портов VirtualBox NAT на Ubuntu 64?

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

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

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

5
Вы уверены, что ваш виртуальный сетевой адаптер PCNet? Когда я создаю виртуальную машину и выбираю Ubuntu x64, я получаю e1000 по умолчанию. Bender 14 лет назад 0
Вам действительно нужен NAT? Мост проще установить, и это то, что вы хотите, будет работать мгновенно. igustin 14 лет назад 0
Правда, но я думаю, что NAT приходит по умолчанию в определенных версиях. По крайней мере, так было, когда я установил свой VBox, используя последние 8 месяцев назад. J. Polfer 14 лет назад 0

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
the_curator

У меня была та же проблема - я думаю, что 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 в гостевой системе.« В гостевой ».

Никто не пометил этот ответ, но под управлением OS X 10.6.x host и Debian GNU / Linux 6.0.1 (squeeze) guest в 3.2.12 r68302 это помогло. Спасибо за спасение меня еще один час раздражения и разочарования. songei2f 12 лет назад 0
1
catchdave

У меня был тот же симптом, когда я настраивал переадресацию портов в 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/0
  • Вторая PCNet: pcnet/1
  • Первый Intel PRO / 1000: e1000/0
  • Второй Intel PRO / 1000: e1000/1
  • Третий Intel PRO / 1000: e1000/2

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