Как я могу получить доступ к веб-серверу, работающему на моем гостевом компьютере VMware Fusion с NAT, из остальной части подсети?

Мне не разрешено запускать моего гостя VMWare в мостовом режиме, и я хочу каким-то образом туннелировать от согласованного порта на внешнем сетевом интерфейсе Mac до веб-сервера, работающего на гостевом компьютере VMWare fusion.

Я предполагаю, что я могу как-то настроить туннель в ipfw, работающем на Mac, чтобы поддержать это.

Кто-нибудь может дать мне несколько советов, пожалуйста?

2 ответа

Решение

Отказ от ответственности Я не пробовал это, но это для рабочей станции, но я считаю, что это должно работать

Если вы используете виртуальную машину на своем компьютере, вы можете получить доступ к этой виртуальной машине с другого компьютера. Давайте рассмотрим пример: скажем, у вас есть виртуальная машина Ubuntu с Apache, работающая на порту 80, и вы хотите показать другим людям в вашей сети доступ к веб-сайту, который вы размещаете.

Мы собираемся предположить, что виртуальная машина использует NAT, и ей был назначен IP-адрес 192.168.23.128.

Сначала откройте пункт меню "Управление виртуальными сетями":

альтернативный текст

Нажмите на вкладку NAT, а затем нажмите на Изменить. Вы увидите диалог настроек NAT:

альтернативный текст

Нажмите кнопку Переадресация портов, и вы увидите этот диалог:альтернативный текст

Теперь мы наконец на экране, который мы действительно можем использовать. Мы собираемся использовать порт 8080 на хост-машине. Мы вводим IP-адрес для виртуальной машины Ubuntu и порт 80. Эти порты могут быть любыми портами.альтернативный текст

Мы должны быть в состоянии проверить это, перейдя по http://localhost:8080/ на нашем хост-компьютере. Мы можем выдать URL-адрес нашей хост-машины, заменив localhost IP-адресом хост-компьютера.

РЕДАКТИРОВАТЬ:

Если вы используете NAT, виртуальная машина находится за NAT-адресом уровня хоста (172.xyz), о котором ваш интернет-маршрутизатор ничего не знает. Вы можете перенаправить порт 80 от маршрутизатора на IP-адрес вашего хоста, а затем настроить /Library/Application Support/VMware Fusion/vmnet8/nat.conf для перенаправления запросов порта 80 на адрес вашей виртуальной машины 172 на порт 80. Это требует выключения Apache OS X, если он работает, потому что это может вызвать конфликт портов.

Другой вариант - изменить виртуальную машину с NAT на мостовую. В этом случае ваша OS X и виртуальная машина Ubuntu будут находиться в одной подсети с адресом DHCP, выданным интернет-маршрутизатором. Маршрутизатор будет перенаправлять трафик непосредственно на виртуальную машину без дополнительной переадресации портов.

Я пытался сделать то же самое на OSX (точнее, разрешить телефонам / планшетам / устройствам / людям получать доступ к моей виртуальной машине для тестирования), и следующее работало отлично:

Моя настройка:

Host OSX IP: 192.168.1.72
VM IP:       172.16.67.188

Метод:

1) Выберите "NAT" в настройках "Сетевого адаптера" на VMWare Fusion.

2) перейдите в каталог vmnet8

    cd /Library/Application\ Support/VMware\ Fusion/vmnet8/

Примечание. Если вы не можете найти каталог vmnet8, попробуйте запустить locate nat.conf, где обычно находится файл.

3) Редактировать nat.conf файл (используя vim/vi и т. д.) и под ним [incomingtcp], введите следующее:

    EG: <external port number> = <VM’s IP address>:<VM’s port number>

В моем случае я ввел:

    [incomingtcp]
    8080 = 172.16.67.188:80

4) Сохраните и выйдите из nat.conf файл

5) Перезагрузите сеть VMWare, запустив:

    /Library/Application\ Support/VMware\ Fusion/boot.sh --restart

После запуска boot.shвесь трафик tcp к порту 8080 на хост-машине OSX будет немедленно перенаправлен на порт назначения 80 виртуальной машины с IP-адресом 172.16.68.188 и сделает вашу виртуальную машину доступной для локальной сети в 192.168.1.72:8080.

Примечание. Если вы уже используете веб-сервер на OSX, конфликты могут возникнуть на порте 80, поэтому используйте 8080 (как я показал здесь) или другой порт, чтобы избежать проблем.

Другие вопросы по тегам