Я использую этот командный блок для маршрутизации от 80 до 8080, но сейчас не работает

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -i wlp8s0 -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -P FORWARD ACCEPT

и iptables -L -vt nat output is;

Chain PREROUTING (policy ACCEPT 3 packets, 236 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REDIRECT   tcp  --  wlp8s0 any     anywhere             anywhere             tcp dpt:http redir ports 8080

Chain INPUT (policy ACCEPT 2 packets, 184 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 2 packets, 128 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 2 packets, 128 bytes)

и, наконец, cat /proc/sys/net/ipv4/ip_forward output => 1

вывод uname;

Linux 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u3 (2017-08-06) GNU/Linux

Что я делаю не так?

1 ответ1

0

Согласно Frozentux «цель REDIRECT используется для перенаправления пакетов и потоков на саму машину [...] Другими словами, это переписывает адрес назначения на наш собственный хост для пересылаемых пакетов или чего-то подобного ».

Вы можете попробовать вместо этого (команда изменена с https://stackoverflow.com/questions/242772/using-iptables-to-change-a-destination-port):

iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination <proxy_ip>:8080

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