iptables限制docker对外端口

docker会在iptables上加上自己的转发规则,如果直接在input链上限制端口是没有效果的。如果需要限制对外的端口,那么直接限制docker的转发链上的DOCKER表就能达到期望。参考如下:
# 查询DOCKER表并显示规则编号
iptables -n --line-numbers -vL DOCKER

比如输出如下信息:

Chain DOCKER (2 references)

numpktsbytestargetprotoptinoutsourcedestination
10151KACCEPTtcp--!br-1e4c8b959999br-1e4c8b9599990.0.0.0/0172.19.0.2 tcp dpt:2083
200ACCEPTtcp--!br-1e4c8b959999br-1e4c8b9599990.0.0.0/0172.19.0.2 tcp dpt:80

# 修改对应编号的iptables规则
# 这里修改编号1的规则仅限本机允许访问2083端口
iptables -R DOCKER 1 \
-p tcp -m tcp ! -i br-1e4c8b959999 -o br-1e4c8b959999 \
-s 127.0.0.1 --dport 2083 \
-j ACCEPT -d 172.19.0.2

## -p : port
## -m : 添加拓展模块
## -i : in  若带惊叹号时,惊叹号放置于-i参数之前,如 [! -i xxx]
## -o : out
## -s : 限制来源地址
## --dport : 来源地址端口
## -d : destination
阅读剩余
THE END