Назад | Перейти на главную страницу

Хост Virtualbox для гостевой сети с включенным NAT

У меня установлены гостевые операционные системы Ubuntu в Oracle VirtualBox. Я использую Ubuntu 10.04 в качестве основной (базовой) операционной системы со статическими общедоступными IP-адресами.

Я могу получить доступ к Интернету в гостевой (VirtualBox) ОС, только если я выберу NAT в качестве сетевого режима в настройках VirtualBox, и это нормально, но сеть хоста (базы) для гостя (VirtualBox) не работает.

Я хочу подключить гостевую ОС к хосту через ssh.

Мне нужно пошаговое руководство.

Я написал HOWTO для Linux Journal о переадресации портов в NAT в VirtualBox здесь: http://www.linuxjournal.com/content/tech-tip-port-forwarding-virtualbox-vboxmanage

Используйте утилиту VBoxManage для перенаправления неиспользуемого локального порта (например, 2222) на порт 22 виртуальной машины (при условии, что вы используете порт по умолчанию на виртуальной машине), что позволит вам легко подключиться к вашей виртуальной машине по SSH.

Когда вы используете NAT для своих гостевых экземпляров, VirtualBox создает отдельную «подсеть» (10.x.x.x), в которой работают гостевые экземпляры. Чтобы получить доступ к этим экземплярам, ​​вам необходимо настроить статические маршруты в хост-системе. Есть много ссылок / руководств, где люди это сделали.

В качестве альтернативы вы можете использовать мостовую сеть вместо NAT. Мостовая сеть поместит гостевые экземпляры в ту же сеть, что и операционная система вашего хоста, тем самым предоставив вам прямой доступ.

Причина в том, что в режиме NAT VirtualBox эффективно обеспечивает маршрутизацию интернет-трафика к виртуальной машине и от нее, тогда как в режиме моста вы должны делать это самостоятельно. Другими словами, вам необходимо настроить свой хост-компьютер как интернет-шлюз (с пересылкой и SNAT или маскированием). В мостовом режиме ваш гость ведет себя так, как если бы это был полностью отдельный компьютер в локальной сети за брандмауэром (или полностью отдельный компьютер в Интернете, но для этого потребуется отдельный статический IP-адрес), что является своего рода всей точкой работы виртуальная машина.

Поскольку у вас, вероятно, есть только один статический общедоступный IP-адрес, вам необходимо привязать другой (внутренний) IP-адрес к ОС хоста либо на том же интерфейсе, либо на другом, а затем либо разрешить гостю получить IP-адрес на та же внутренняя подсеть от DHCP-сервера или настройте ее статически таким образом. Затем вы настраиваете iptables на хосте для пересылки с внешнего IP-адреса во внутреннюю LAN, плюс соответствующие правила для SNAT / MASQUERADE, и все должно быть в порядке.

NAT с переадресацией портов мне не подходил. Я хотел, чтобы VirtualBox работал как NAT на VMWare Workstation, где я мог ssh / просматривать с моего хоста на гостя, используя согласованный IP-адрес, и гость все еще мог выходить в Интернет. Способ сделать это - настроить гостя с двумя сетевыми адаптерами, одним NAT и одним Host-Only (vbox0). Полную инструкцию можно найти здесь:

http://christophermaier.name/blog/2010/09/01/host-only-networking-with-virtualbox