Поэтому я пытаюсь перенаправить гостевой порт 80 на порт 80 моего хоста, чтобы я мог видеть Apache, работающий на гостевой машине, в браузере моего хоста.
Если я установлю следующее: (8080/80), я смогу просмотреть localhost:8080 и увидеть гостевой сервер Apache.
Когда я устанавливаю хост на 80, а гость на 80, это не работает. Как мне заставить гостя 80 перенаправляться на хост 80?
Предположим, что работа в режиме NAT обязательна.
решение1
На вашем снимке экрана видно, что вы используете VirtualBox на OS X. Это правильно?
Если это так, то по умолчанию учетная запись пользователя не может создавать конечные точки IP, которые прослушивают порты ниже 1024. У вас остается два варианта, если вам абсолютно необходимо, чтобы что-то прослушивало порт с низким номером:
- Вы можете запустить VirtualBox как пользователь root (или другая привилегированная учетная запись), но это не рекомендуемое решение, поскольку оно позволяет обойти множество ограничений безопасности.
Вы можете добавить правило переадресации в свой брандмауэр, например, с порта 8080 на 80, чтобы незаметно перенаправить трафик. Ваш VirtualBox по-прежнему будет настроен на переадресацию порта 8080. В двух словах:
- Откройте Терминал и введите
sudo vi /etc/ipfilter/ipfw.conf
- Добавьте эту строку:
add 12001 fwd 127.0.0.1,8080 tcp from any to me dst-port 80
- Сохраните и закройте файл:
:wq
- Откройте Терминал и введите
Отказ от ответственности: у меня нет Mac под рукой, не говоря уже о последней копии OS X, поэтому, хотя общие идеи по-прежнему применимы, фактические детали настройки правил переадресации брандмауэра могут немного отличаться в зависимости от того, какую версию вы используете в данный момент.
Возможно, есть и лучшие способы справиться с этим. Например, если вы настроите второй виртуальный адаптер для своего гостя и настроите его как "Host-Only", то вы сможете получить доступ к любому из портов гостя с вашего хоста без необходимости переадресации каких-либо портов. Это может не иметь смысла, если вам нужно поделиться гостем по всей вашей сети - в этом случае, возможно, виртуальный адаптер "Bridged" будет иметь больше смысла. Я бы посоветовал почитать о различных сетевых режимах в Главе 6 Руководства VirtualBox:https://www.virtualbox.org/manual/ch06.html
решение2
возможно, порт 80 заблокирован вашим интернет-провайдером, но он отлично работает для VirtualBox. Как это проверить? Предоставьте более подробную информацию.