Назад | Перейти на главную страницу

веб-сервер за NAT не может быть доступен из той же сети с использованием IP-адреса маршрутизатора NAT или домена

У меня есть 1 хост-сервер как сервер NAT, он имеет публичное доменное имя example.com привязан к общедоступному IP-адресу PUB_IP_ADD.

у меня есть другой веб сервер за NAT с IP-адресом 192.168.1.100 и правила переадресации портов выполняются на хост-сервер:

-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80

У меня есть несколько другие серверы за NAT с фиксированным диапазоном IP-адресов 192.168.1.101-110 и masquerade правила сделаны для всего 192.168.1.0/24 ассортимент:

-A ПОСТРОУТИРОВАНИЕ -s 192.168.1.0/24 -o vmbr0 -j МАСКАРАД

Приведенные выше правила могут позволить моим серверам за NAT выходить в Интернет. (скачать и пропинговать общедоступные ips).

Доступ к моей веб-странице можно получить из Интернета, посетив example.com но недоступен изнутри сети NAT в тех 192.168.1.0/24 используя то же доменное имя или хост-сервер айпи адрес.

Интересно, почему веб-сервер за брандмауэром NAT не может быть доступен для его сверстников с использованием доменного имени или IP-адреса сервера NAT?

Мне нужно добавить SNAT правила специально для веб сервер и удалите masquerade линия?

Вы можете использовать SNAT, если используете статические IP-адреса, поскольку MASQUERADE страдает штрафом, поскольку ему необходимо получить IP-адрес из сетевого интерфейса.

Кроме того, если вы проводите тестирование с компьютера с брандмауэром, он попытается получить доступ к своему собственному веб-серверу вместо выделенного веб-сервера. Нам нужно поместить правило в цепочку OUTPUT, чтобы справиться с этим случаем:

iptables -t nat -A OUTPUT -d $INET_IP --dport 80 -j DNAT --to-destination $HTTP_IP