Предположим, у меня есть сеть с сервером, маршрутизирующим все соединения из сети в Интернет. Как настроить iptables таким образом, чтобы вместо маршрутизации входящих подключений к Интернету он направлял их на локальный хост-порт 8080. Вся помощь приветствуется.
2 ответа
25
это можно сделать с помощью iptables
, но только с ядром> = 3.6.
Вам нужно будет сделать:
sysctl -w net.ipv4.conf.all.route_localnet=1
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080
ip_forward
нет необходимости, поскольку пакет не пересылается, но если вы не включите sysctl для route_localnet
(который работает только в ядрах> = 3.6), пакет будет отброшен ядром, поскольку он считает его "марсианским" , приходя извне и имея адрес назначения 127.0.0.1
3
sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8080