6 个月前,我以某种方式在我的一台 AWS EC2 服务器上配置了端口转发,但我不记得是如何配置的。
它是 Amazon Linux 实例。我以为我使用了 iptables,但规则表揭示了一切。
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-ISOLATION all -- anywhere anywhere
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere 172.17.0.3 tcp dpt:6379
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:11181
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:6380
ACCEPT tcp -- anywhere 172.17.0.4 tcp dpt:15672
ACCEPT tcp -- anywhere 172.17.0.4 tcp dpt:amqp
Chain DOCKER-ISOLATION (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
有些东西将请求从 80 转发到 9000(在 docker 容器中运行的应用程序)。
我怎样才能找到它?
答案1
结果我不得不使用iptables -t nat -S
查看 NAT 规则。
答案2
我不明白你的情况,但如果你能用这个答案提醒一下。对于端口转发,我使用这种命令作为 nat 类型:
/sbin/iptables -t nat -A DOCKER -p tcp -d INPUT_IP_ADRESS --dport 80 -j DNAT --to-destination OUTPUT_IP_ADRESSS:9000
我放输出地址是因为我习惯使用2个网络接口。iptables-save
如果有效的话不要忘记使用(开玩笑)