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

Перенаправить порт внешнего маршрутизатора на внешний IP-адрес и порт

У меня есть домашний маршрутизатор WRT54GL, и я хочу, чтобы запросы, поступающие на общедоступный IP-адрес маршрутизатора через порт 97, перенаправлялись на внешний IP-адрес и порт, например 209.85.148.99 (google.com) и порт 80.

Внешний интерфейс роутера называется vlan1.

Я попытался iptables -t nat -A PREROUTING -d <router_ip> -i vlan1 -p tcp -m tcp --dport 97 -j DNAT --to-destination 209.85.148.99:80, но это не работает.

Как я могу это сделать? Кроме того, как я могу узнать, активно ли это правило? iptables -L похоже, не перечисляет это.

Мне удалось решить свою проблему с помощью rinetd на моем компьютере (который находится в DMZ) со следующим правилом в его конфигурации:

# bindaddress bindport connectaddress connectport
0.0.0.0       97       209.85.148.99  80

но я бы хотел сделать перенаправление в роутере.

Это проблема по дизайну, предположительно, оба IP-адреса должны использовать один и тот же IP-адрес шлюза, который должен быть запущен брандмауэром. iptables, Раньше я пытался делать то же самое, что и вы, с тем же результатом неудачи. Вам нужно обратное правило для того же самого nat, чтобы снова переписать пакет, чтобы источник правильно понял его, при отправке в другую сеть этого не происходит.

Единственный способ перенаправления на другой внешний сайт - это использовать вышибалу или прокси-движок, такой как squid, varnish или nginx, или написать свой собственный очень короткий код вышибалы на выбранном вами языке.