2

У меня есть гость Virtualbox под управлением Ubuntu 14.04 и веб-сервер node.js. Хост Virtualbox является клиентом Windows 8.1. После настройки сервера узла у меня возникли некоторые трудности с внешним доступом.

Сервер узла работает на порте 5005, поэтому обычно я просто создаю правило переадресации портов из брандмауэра, чтобы маршрутизировать все запросы на 5005 на гостевой IP (192.168.2.13) на одном и том же порту. Делая это, я вижу, что запросы, которые я делаю от внешнего местоположения, достигают брандмауэра и получают разрешение, но внешний клиент никогда не получает ответ. Если я получаю доступ к частному IP-адресу изнутри сети, он отвечает так же правильно и как ожидалось (поэтому сервер определенно работает).

Если я попробую тот же процесс, но запустлю сервер на хост-машине (а не на гостевой виртуальной машине), это сработает! Это говорит о том, что конфигурация брандмауэра не является проблемой. Я могу пропинговать гостевой IP-адрес с брандмауэра, поэтому подключение кажется нормальным.

Итак, кажется, что что-то происходит в настройке сети для ВМ, вызывая проблему, но что? Гость VB настроен со статическим IP-адресом с использованием сетевой мостовой модели VirtualBox.

Ни IpTables, ни UFW не настроены на блокировку чего-либо на госте (что я скажу)

Что я пропустил?

1 ответ1

1

Оказывается, у гостя не был правильно установлен шлюз по умолчанию. Я смог сказать это, запустив

route -N

на гостевой, и это показало, что не был установлен маршрут по умолчанию. Чтобы это исправить я побежал

route del default
route add default gw 192.168.2.100 eth1

и гость теперь может правильно общаться с трафиком NAT'd из Интернета.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .