Я пытаюсь настроить переадресацию порта с порта 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
но сейчас для меня это неважно.