5

На хосте macbook я запускаю VirtualBox с гостевым сервером Ubuntu с настройкой сети NAT.
В приложении виртуальной машины "Parallels" я получал на хосте IP-адрес гостя, по которому позже мог бы устанавливать имена хостов и получать к нему доступ напрямую.

Тем не менее, я не мог найти способ сделать это с помощью VirtualBox.
Единственное решение, которое VirtualBox имеет для меня, это установить переадресацию портов и доступ к "localhost" с этими портами.

Как я могу настроить желаемое поведение, не переключаясь на сетевые параметры моста, и выставить мой гостевой компьютер в сеть, к которой подключен мой главный компьютер?

Благодарю.

2 ответа2

4

Ну, я не люблю отвечать на свои вопросы, но я нашел хороший ответ в другом вопросе здесь, и я подумал, что поделюсь:

Я искал простой способ работы с виртуальной машиной.
Поскольку создание неортодоксальных портов (я не мог перенаправить порт 80 хоста на порт 80 гостя, поскольку VirtualBox пока этого не позволяет) не является легким и удобным способом, я не мог принять ни одного ответа, который сказал бы сделать это, поскольку это не то, что я просил.

Итак, один из ответов, которые я нашел в приведенном здесь списке справа, сказал, что я могу просто создать не один, а ДВА сетевых интерфейса в VirtualBox для соответствующей виртуальной машины, а затем у меня будет один (NAT) для доступа хоста к ВМ, и другой (только для хоста) для ВМ для доступа в Интернет.
Сюда:

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

Поскольку я пробовал разные варианты, мне пришлось вручную настраивать интерфейсы на машине гостевого сервера Ubuntu.
Это заставило меня столкнуться с некоторыми проблемами, которые были довольно раздражающими, поэтому я решил поделиться одной из них:
Сделайте первый интерфейс (eth0) интерфейсом только для хоста (тот, который предназначен для соединения между хостом и гостем), а второй интерфейс (eth1) - интерфейс NAT.
Если вы этого не сделаете, у вас может быть проблема с гостевым компьютером, пытающимся получить доступ к Интернету через интерфейс только для хоста.
Эта проблема могла быть вызвана чем-то совершенно другим, и порядок, возможно, не имеет к этому никакого отношения, но это то, что случилось со мной, поэтому я делюсь со всеми, кто читает это, на случай, если вы столкнетесь с такой проблемой.

Спасибо за помощь!

РЕДАКТИРОВАТЬ: Только что @Goyuix разместил ссылку на вопрос, который также помог мне. Спасибо @Goyuix.

2

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

Если вам нужен доступ в Интернет, ваш лучший выбор - использовать сеть NAT, как вы описали. Вам нужно будет перенаправить определенные порты через механизм VirtualBox NAT для доступа к службам вашего гостя. Здесь есть несколько связанных вопросов, касающихся SuperUser, которые охватывают это, но в основном вы должны вводить команды, подобные этим, в командной строке (это указывает хосту переадресовывать входящие соединения по TCP 8080 на TCP 80 на гостевой системе):

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

Если гостевой машине не требуется доступ к Интернету, вам лучше всего использовать модель "Только для хоста". Это соединит гостевой адаптер с программным адаптером на хосте (обычно в подсети 192.168.56.0/24). Вы сможете получить доступ к любым услугам на хосте или госте без дополнительной настройки. Ну, возможно, пропуская трафик через любые программные брандмауэры, которые вы, возможно, установили - но обычно это "просто работает" ™

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