У меня динамический IP WAN, поэтому, если он изменится, мои iptables больше не будут применяться.
Вот моя рабочая шпилька nat, где xxxx - мой WAN IP
br0 - LAN
eth1 - WAN
-A PREROUTING -d x.x.x.x -p tcp --dport 80 -j DNAT --to-destination 192.168.0.9
-A POSTROUTING -s 192.168.0.0/27 -d 192.168.0.0/27 -o br0 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/27 -o eth1 -j MASQUERADE
Есть ли другой способ, где мне не нужно -d x.x.x.x
специально использовать в случае изменения моего WAN IP?
Ответы:
Перепишите первое правило как:
Обратите внимание, что это также перенаправит подключения к порту 80 по IP-адресу локальной сети.
Если вы хотите избежать этого, с помощью LAN IP
a.b.c.d
измените правило следующим образом:источник
В правиле DNAT вместо
-d x.x.x.x
использования-i eth1 -m addrtype --dst-type LOCAL
.источник
iptables -t nat -A PREROUTING -i eth1 -m addrtype --dst-type LOCAL -p tcp --dport 80 -j DNAT --to-destination 192.168.0.9
... Однако я больше не могу получить доступ к своему серверу через публичный IP. Пока единственное, что работает, - это набирать IP-адрес специально через-d x.x.x.x
или что-то типа того...
источник