通过在iptables DOCKER-USER 添加规则,即可实现所有外部网络都无法访问docker中的服务:
iptables -I DOCKER-USER -i enp0s3 -j DROP
规则:所有从外部网络进入的数据包,直接被丢弃。 DOCKER-USER链是上述FORWARD链中第一个规则匹配的到的链。 外部访问的数据包,其物理输入网口(如ens192),它是对外通信的网口。 我们可以在此,插入只允许某个网络访问,或某个网络不能访问的规则
#方法
yum install -y iptables iptables-services
service iptables save
或者
iptables-save > /etc/sysconfig/iptables
cp /etc/sysconfig/iptables ~/iptables.bak
#显示DOCKER-USER的链中的规则信息
iptables -nL DOCKER-USER
主机nacos容器的默认访问端口为8848,首先要禁止所有IP访问docker的8848端口
# 在主机10.10.58.137执行如下命令:(ens192 为本机网卡)
#禁止所有IP访问docker的80端口
iptables -I DOCKER-USER -i ens192 -p tcp --dport 8848 -j DROP
配置允许访问的IP,删除DOCKER-USER的链中的默认规则(默认规则允许任意ip访问)
#只允许192.168.3.122访问docker的80端口
iptables -I DOCKER-USER -i ens192 -s 10.10.58.236 -p tcp --dport 8848 -j ACCEPT
#删除DOCKER-USER的链中的默认规则
#删除RETURN的规则
iptables -D DOCK-USER -j RETURN
保存新的DOCKER-USER策略,并设置iptables开机自启
#保存DOCKER-USER策略
service iptables save
#设置iptables开机自启,使策略永久生效
systemctl enable iptables.service
#或者
/etc/rc.d/init.d/iptables save