Доступ к веб-серверу LAMP, который находится за виртуальной машиной Ubuntu, действующей в качестве брандмауэра
В настоящее время у меня есть две виртуальные машины, настроенные следующим образом:
/-----------------------\
/-----------------\ | Ubuntu VM | /---------------\
| Workstation |------| eth1 : 192.168.0.x | | Web Server |
| 192.168.0.x | | eth0 : 169.254.71.x |------| 169.254.71.x |
\-----------------/ | | \---------------/
\-----------------------/
И у меня возникли проблемы с доступом к веб-серверу с моего локального компьютера.
Ubuntu настроен через virtualbox, чтобы иметь 2 сетевых адаптера, первый для внутренней сети, а второй для мостового соединения. Это дает мне два проводных соединения один раз внутри виртуальной машины, и я устанавливаю первое (соответствующее внутренней сети) как "только локальная ссылка", а второе как автоматический DHCP.
Веб-сервер работает под управлением операционной системы linux LAMP под ключ, сетевой адаптер настроен на внутреннюю сеть, имя сети совпадает с именем внутренней сети ubuntu.
Я следовал этому руководству (переключая eth0 и eth1, где это уместно), чтобы позволить мне пинговать с веб-сервера во внешний мир. Я могу пинговать как с локального компьютера, так и с любого веб-сайта в Интернете с веб-сервера.
Теперь моя проблема возникает из-за попытки сделать обратное выше. Я пытался безрезультатно в течение достаточно долгого времени, используя такие ресурсы, как этот и несколько других, чтобы я мог подключаться к веб-серверу с моего локального компьютера. Когда я пытаюсь пропинговать адрес 169.254.71.x моего веб-сервера, он не подключается.
Я понимаю, что моя проблема, вероятно, связана с настройкой NAT на компьютере с Ubuntu или с настройкой переадресации портов на компьютере с Ubuntu, но я не знаю, как решить эти проблемы.
1 ответ
Таким образом, я в конечном итоге выяснил свою проблему, просто опубликовав ответ для кого-либо еще, потенциально имеющего проблему.
Команда:
iptables -t nat -A PREROUTING -d outerip -p tcp --dport 80 -j DNAT --to webip
Было то, что в конечном итоге позволило ему работать. Это правило добавляет таблицу предварительной маршрутизации, чтобы позволить соединениям с внешнего ip брандмауэра, если они являются tcp-пакетами, предназначенными для порта 80, чтобы они напрямую передавались через NAT через брандмауэр к IP-адресу веб-сервера.
Также следует отметить, что я изменил внутренний адаптер моего брандмауэра с "ссылка только локальная" на "общий с другими компьютерами". Это назначило этому адаптеру eth адрес 10.42.0.x вместо 169.254.xx не уверен, исправит ли это какую-либо функциональность, другой пользователь предложил мне убрать адресное поле 169.254.xx.