Как получить доступ к гостевой системе Ubuntu VirtualBox по статическому IP-адресу с хоста OS X?

Как получить доступ к гостевой системе Ubuntu VirtualBox по статическому IP-адресу с хоста OS X?

Как настроить гостевую систему Ubuntu для использования статического IP, видимого хосту OS X, и гарантировать, что статический IP не зависит от сетевой конфигурации хоста? Раньше я использовал мостовую сеть для своей гостевой системы, но я постоянно перемещаю свой хост между сетями, поэтому гостевой IP всегда разный.

Сначала я попробовал настроить гостевую сетевую конфигурацию на NAT и перенаправить порт хоста 1022 на гостевой порт 22, чтобы я мог хотя бы подключиться по ssh к фиксированному адресу (localhost:1022):

$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/Protocol" "TCP"
$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/GuestPort" 22
$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/HostPort" 1022

Затем,

$ ssh localhost -p 1022
ssh: connect to host localhost port 1022: Connection refused

Но это не сработало (у гостя нет доступа к сети с NAT, и OS X отклонила соединение, как вы можете видеть).

Мне бы хотелось получить универсальное решение, которое позволило бы мне общаться с гостем по фиксированному IP-адресу.

решение1

Для начала localhost указывает на 127.0.0.1. Эта виртуальная машина может работать на вашей машине, но адресация к ней осуществляется отдельно.

Когда вы включаете мост NAT в VirtualBox, он создает отдельный виртуальный интерфейс, который будет действовать как «маршрутизатор» для клиентов NAT, которых вы поместили за ним. Вы не можете подключиться к localhost, чтобы получить доступ к виртуальной машине, потому что localhost — это ваш Mac, а НЕ виртуальная машина.

Настройте гостевую машину как NAT, затем проверьте адрес виртуальной машины изнутри нее. Используйте этот адрес (скорее всего, это частный адрес, 192.168.что-то вроде того) и попробуйте подключиться с вашего хоста.

решение2

ОтРуководство по работе в сети VirtualBox. Я использую это для гостевой Windows через NAT для удаленного рабочего стола и это отлично работает, но я не пробовал с самого хоста.

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

В приведенном выше примере весь TCP-трафик, поступающий на порт 2222 на любом интерфейсе хоста, будет перенаправлен на порт 22 в гостевой системе. Имя протокола tcp является обязательным атрибутом, определяющим, какой протокол следует использовать для пересылки (также можно использовать udp). Имя Guestssh является чисто описательным и будет автоматически сгенерировано, если оно опущено. Число после --natpf обозначает сетевую карту, как и в других частях VBoxManage.

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

Связанный контент