13

Предположим, у меня есть сеть с сервером, маршрутизирующим все соединения из сети в Интернет. Как настроить iptables таким образом, чтобы вместо маршрутизации входящих подключений к Интернету он направлял их на локальный хост-порт 8080. Вся помощь приветствуется.

2 ответа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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .