У меня есть гость Virtualbox под управлением Ubuntu 14.04 и веб-сервер node.js. Хост Virtualbox является клиентом Windows 8.1. После настройки сервера узла у меня возникли некоторые трудности с внешним доступом.
Сервер узла работает на порте 5005, поэтому обычно я просто создаю правило переадресации портов из брандмауэра, чтобы маршрутизировать все запросы на 5005 на гостевой IP (192.168.2.13) на одном и том же порту. Делая это, я вижу, что запросы, которые я делаю от внешнего местоположения, достигают брандмауэра и получают разрешение, но внешний клиент никогда не получает ответ. Если я получаю доступ к частному IP-адресу изнутри сети, он отвечает так же правильно и как ожидалось (поэтому сервер определенно работает).
Если я попробую тот же процесс, но запустлю сервер на хост-машине (а не на гостевой виртуальной машине), это сработает! Это говорит о том, что конфигурация брандмауэра не является проблемой. Я могу пропинговать гостевой IP-адрес с брандмауэра, поэтому подключение кажется нормальным.
Итак, кажется, что что-то происходит в настройке сети для ВМ, вызывая проблему, но что? Гость VB настроен со статическим IP-адресом с использованием сетевой мостовой модели VirtualBox.
Ни IpTables, ни UFW не настроены на блокировку чего-либо на госте (что я скажу)
Что я пропустил?