docker在映射端口的时候,会自动修改iptables直接开放端口,自己设置的规则就没有作用。有时候我们希望外网不能直接访问。

通常情况下,不允许外网访问端口的设置

iptables -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport {端口号} -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport {端口号} -j REJECT     

在docker端口映射设置之后,先查看一下修改的规则。

iptables -L DOCKER -n --line-number

修改规则阻止外网访问。

iptables -R DOCKER 1 -p tcp -m tcp -s 127.0.0.1/32 --dport {端口号} -j ACCEPT

恢复允许访问

iptables -R DOCKER 1 -p tcp --dport 3000 -j ACCEPT

参考:

https://segmentfault.com/q/1010000000215159