我使用 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
Run Code Online (Sandbox Code Playgroud)
和 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
Run Code Online (Sandbox Code Playgroud)
我想阻止容器172.18.0.2,它的端口7053。所以我使用sudo iptables -I FORWARD -p tcp -d 172.18.0.2 --dport 7053 -j DROP
.
但是,它不起作用。那么,如何屏蔽目标ip和端口呢?
小智 3
以下应该有效:
iptables -I DOCKER 1 -p tcp --dport 7053 -j DROP
Run Code Online (Sandbox Code Playgroud)
这会将 DROP 规则插入到 DOCKER 链中所有其他规则之前。
以下是一个有用的命令:
iptables --list DOCKER -n --line
Run Code Online (Sandbox Code Playgroud)
同样,如果您添加-v
(详细),您会获得更多详细信息
到目前为止,您可能已经有了答案,但这可能对其他人有帮助。
归档时间: |
|
查看次数: |
6383 次 |
最近记录: |