1

Цель: иметь возможность подключиться к 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?

Что я мог здесь упустить?

0