Цель: иметь возможность подключиться к httpd, работающему в гостевой системе, с других компьютеров в той же локальной сети, что и хост.
Подход принят Я настроил интерфейс NAT с переадресацией портов на гостевой. Порт 8080 хост-машины перенаправляется на порт 80 гостевой машины.
Гость также имеет интерфейс только для хоста, он используется только для проверки статуса httpd (запущен / остановлен) с хоста.
У меня есть следующие настройки:
- Host -> Fedora
- Гость -> Debian 9
- Сетевые интерфейсы (2)
- NAT
- Только хост
- Переадресация портов Хост-порт 8080 перенаправляется на гостевой порт 80
Проблема Я не могу получить доступ к порту 80 на гостевой машине с хоста (используя localhost:8080, т.е. без использования интерфейса только для хоста), следовательно, он также доступен из локальной сети.
Тем не менее, у меня также есть ssh на госте, я попробовал ту же самую настройку переадресации портов для ssh, то есть, перенаправьте Host:8080 на Guest:22, и это сработало! Я могу SSH в гостевой от хоста, а также с других машин в той же локальной сети. Так что это не проблема брандмауэра.
Я получил httpd прослушивания 0.0.0.0:80 через /etc/apache2/ports.conf. Я также попытался изменить порт, который прослушивает httpd без особой удачи.Точно так же я также попытался указать IP-адрес, который прослушивает httpd в качестве IP-адреса, назначенного VirtualBox интерфейсу NAT, без особого обмана.
Я попытался создать новый интерфейс NAT из меню «Файл»> «Настройки»> «Сеть», а также путем добавления переадресации портов к стандартному интерфейсу NAT, встроенному в VirtualBox.
Запуск wget на хосте дает следующий вывод
# wget localhost:8080
--2017-08-08 13:06:33-- http://localhost:8080/
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:8080... failed: Connection refused.
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://localhost/ [following]
--2017-08-08 13:06:34-- http://localhost/
Connecting to localhost (localhost)|127.0.0.1|:80... failed: Connection refused.
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:80... failed: Connection refused.
Connecting to localhost (localhost)|127.0.0.1|:80... failed: Connection refused.
Ниже приводятся выдержки из команды netstat на хосте и госте:
Local Address Foreign Address State
192.168.1.2:8080 192.168.1.2:52162 FIN_WAIT2
Гостевая машина:
Local Address Foreign Address State
10.0.2.15:80 10.0.2.2:52162 FIN_WAIT2
Значит, связь пересылается гостю? На гостевом сервере нет брандмауэра (iptables -L возвращает пустой список). SSH, доступный, в то время как httpd не доступен, вероятно, означает, что это - проблема конфигурации httpd?
Что я мог здесь упустить?