Настроить:
Одна виртуальная машина CentOS 7.1, работающая на сервере Windows 10 Pro (предварительная версия 10074), внутри Virtualbox 5 beta 4 (также тестировалась на 4.3.8). Использование nginx/1.9.0 для обслуживания статических файлов HTML.
ВМ подключена к моей интрасети с использованием настройки NAT в Virtualbox. Я перенаправил порты 22, 80 и 443 с сервера на виртуальную машину, используя стандартные настройки Virtualbox.
Проблема:
Внутри виртуальной машины я могу использовать curl для извлечения любой страницы (curl localhost
возвращает ожидаемый результат). Однако, если я пытаюсь получить страницу с сервера Windows хоста или любых других клиентов интрасети - либо по IP-адресу, либо по локальному хосту на хосте, я получаю сообщение об ошибке "невозможно подключиться" или "сброс подключения".
Используя netstat на виртуальной машине, я проверил, что nginx прослушивает порты 80 и 443 на 0.0.0.0 и [::]. Я также проверил на сервере Windows, что порты 80 и 443 не используются, когда виртуальная машина не работает, и их прослушивают, когда она работает.
При проверке журналов, созданных nginx, access.log содержит только мои запросы curl - и ничего не значится в моем error.log.
Тем не менее, я также запускаю sshd на сервере (на порту 22) и могу подключиться к нему с любой машины в моей внутренней сети (и внешне, когда я пересылаю порты на моем интернет-маршрутизаторе), поэтому я не верю, что это брандмауэр вопрос.
Попытки решения:
Я пробовал как открыть брандмауэр Windows, чтобы разрешить входящие подключения к портам 80/443, так и добавить Virtualbox к исключениям программы. Я также попытался полностью отключить брандмауэр.
Я попытался перейти на порты> 1000 на хост-сервере - но поскольку порт 22 работает нормально, это не имеет особого смысла.
К сожалению, я не могу изменить свое подключение к виртуальной машине с NAT на любой другой тип. Кажется, что Virtualbox пока не поддерживает мосты адаптера в Windows 10 (я пробовал несколько переустановок и новую бета-версию).