如何用iptables阻止docker容器端口?

时间:2018-04-08 06:14:47

标签: docker iptables

我使用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和端口?

1 个答案:

答案 0 :(得分:0)

以下方法应该起作用:

iptables -I DOCKER 1 -p tcp --dport 7053 -j DROP

这会将DROP规则插入DOCKER链中的所有其他规则之前。

以下是有用的命令:

iptables --list DOCKER -n --line

同样,如果添加-v(冗长),您将获得更多详细信息

到现在为止,您可能已经有了答案,但这可能会对其他人有所帮助。