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

Почему мой порт iptables не работает?

Я пытаюсь настроить переадресацию порта с порта 80 портировать 8080 на моей машине amazon linux ami.

Я побежал

$ sudo /sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

И проверил результаты:

$ sudo iptables --table nat --list
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:http redir ports 8080

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Однако запрашивающий порт 80 не работает:

$ wget http://localhost:80
--2017-09-25 08:51:27--  http://localhost/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:80... failed: Connection refused.

Тогда как порт 8080 работает отлично:

$ wget http://localhost:8080
--2017-09-25 08:51:39--  http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.

Как мне разрешить порт 80 быть псевдонимом для порта 8080?


Дополнительная информация:

$ cat /proc/sys/net/ipv4/ip_forward
1

$ sudo sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0
error: "Input/output error" reading key "net.ipv6.conf.all.stable_secret"
error: "Input/output error" reading key "net.ipv6.conf.default.stable_secret"
error: "Input/output error" reading key "net.ipv6.conf.eth0.stable_secret"
error: "Input/output error" reading key "net.ipv6.conf.lo.stable_secret"

Фактически перенаправление портов действовало, но не работало для localhost. Однако доступ к порту извне работал отлично.

Я все еще не знаю, Зачем это не сработало для localhost но сейчас для меня это неважно.