Меня смущает сетевое взаимодействие NAT, но для этого я могу использовать VMware и Parallels Desktop.
Я знаю, как работает NAT, просто мне нужно объяснить эту ситуацию.
Следующее изофициальные документы. Почему HOST не может подключить GUEST с помощью NAT.
решение1
Если вы хотите подключиться к гостевой машине с хоста, используя сеть NAT:
Сначала создайте сеть NAT — создайте сеть в VirtualBox Manager, Файл -> Настройки -> Сеть, и дайте ей имя.
Назначьте эту именованную сеть NAT каждой гостевой машине в их сетевых конфигурациях в VirtualBox.
Запишите, какой IP-адрес назначается вашим гостевым машинам, когда вы их запускаете. Это будет что-то вроде 10.0.2.15 или 10.0.2.4. В системах Posix запустите "ifconfig" и посмотрите, какие IP-адреса отображаются для em0. Запишите, какой адрес соответствует какой гостевой машине.
Измените переадресацию портов сети NAT. В диспетчере VirtualBox перейдите в Файл -> Настройки -> Сеть и нажмите кнопку редактирования для используемой сети NAT. Нажмите Переадресация портов. Добавьте правила, которые перенаправляют порты на вашей хост-машине на IP-адрес + порт на гостевых машинах (вам не нужно устанавливать IP-адрес для вашей хост-машины, это необязательно).
решение2
Я немного подумал и нашел идеальное решение, которое легко реализовать.
Добавьте второй интерфейс!!
Один из них — интерфейс NAT для связи виртуальной машины с Интернетом. Другой — интерфейс только для хоста. В моем случае я устанавливаю гостевую ОС CentOS. Появляется новый интерфейс, оба получают свои IP-адреса в соответствующих сетях. Интерфейс только для хоста не устанавливает маршрут по умолчанию, поэтому никаких конфликтов. Он просто работает. Я получаю открытый доступ к гостевой ОС с хоста, используя IP-адрес в сети только для хоста, который определен в VirtualBox.
решение3
решение4
Меня это укусило 2 года назад. Для простоты я хотел, чтобы все мои гости были в той же подсети, что и интерфейс VirtualBox хоста, чтобы SSH или VNC в любой из них. И также чтобы они видели друг друга и имели доступ в Интернет (только для клиентов).
Поскольку у меня есть около 10 гостевых виртуальных машин для разработки на хосте ноутбука, который часто переключается из одной сети в другую, я не мог использовать мост (хотел использовать фиксированные IP-адреса для всех гостей для легкого доступа с хоста).
Сеть NAT была почти идеальной, за исключением отсутствия связи между гостями и хостом.
Сеть, предназначенная только для хоста, была почти идеальной, за исключением отсутствия доступа в Интернет для гостей.
В конце концов мне удалось получить рабочую конфигурацию с одной минимальной виртуальной машиной Debian, действующей как DNSmasq с двумя интерфейсами, и мостом этих двух интерфейсов. Ну, до прошлой недели я просто отключил сетевой интерфейс virtualbox из-за конфликта с другим программным обеспечением, и при его повторном включении доступ хоста к гостю вообще перестал работать.
Через 2 часа удалось восстановить либо доступ в Интернет для гостей, либо доступ гостей между собой, а не к хосту.
Можно, пожалуй, попробовать в качестве последнего варианта режим Host-Only для всех гостей и виртуальную машину шлюза, выполняющую NAT, хотя было бы очень некрасиво иметь два последовательно подключенных NAT, а у гостей будут разные адреса между собой и с хоста.