我使用docker服务来设置容器网络。我只是为目标IP打开一个端口7035并将其暴露给主机 当我用'iptables -nvL'检查iptables时 我看到了FORWARD链:
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP tcp -- * * 0.0.0.0/0 172.18.0.2 tcp dpt:7053
1680K 119M DOCKER-ISOLATION all -- * * 0.0.0.0/0 0.0.0.0/0
1680K 119M DOCKER all -- * br-287ce7f19804 0.0.0.0/0 0.0.0.0/0
1680K 119M ACCEPT all -- * br-287ce7f19804 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
和DOCKER链:
Chain DOCKER (4 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- !br-287ce7f19804 br-287ce7f19804 0.0.0.0/0 172.18.0.2 tcp dpt:7053
0 0 ACCEPT tcp -- !br-287ce7f19804 br-287ce7f19804 0.0.0.0/0 172.18.0.2 tcp dpt:7051
0 0 ACCEPT tcp -- !br-287ce7f19804 br-287ce7f19804 0.0.0.0/0 172.18.0.3 tcp dpt:2181
0 0 ACCEPT tcp -- !br-287ce7f19804 br-287ce7f19804 0.0.0.0/0 172.18.0.4 tcp dpt:7053
0 0 ACCEPT tcp -- !br-287ce7f19804 br-287ce7f19804 0.0.0.0/0 172.18.0.4 tcp dpt:7051
0 0 ACCEPT tcp -- !br-287ce7f19804 br-287ce7f19804 0.0.0.0/0 172.18.0.6 tcp dpt:7053
0 0 ACCEPT tcp -- !br-287ce7f19804 br-287ce7f19804 0.0.0.0/0 172.18.0.6
AndI想要阻止容器172.18.0.2,它的端口是7053.所以我使用了sudo iptables -I FORWARD -p tcp -d 172.18.0.2 --dport 7053 -j DROP
。
但是,它不起作用。 那么,我该怎么做才能阻止目标ip和端口?
答案 0 :(得分:0)
以下方法应该起作用:
iptables -I DOCKER 1 -p tcp --dport 7053 -j DROP
这会将DROP规则插入DOCKER链中的所有其他规则之前。
以下是有用的命令:
iptables --list DOCKER -n --line
同样,如果添加-v
(冗长),您将获得更多详细信息
到现在为止,您可能已经有了答案,但这可能会对其他人有所帮助。