1.查看现有规则
DOCKER-USER 链的规则是否生效与 链的优先级 和 规则顺序相关
sudo iptables -L DOCKER-USER --line-numbers
2.添加规则
允许已建立的连接(必须放在最前面)
sudo iptables -I DOCKER-USER -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
允许 192.168.1.100 访问所有 Docker 容器:
sudo iptables -I DOCKER-USER -s 192.168.1.100 -j ACCEPT
允许 192.168.1.100 访问 Docker 容器时,仅允许访问 TCP 80 端口
sudo iptables -I DOCKER-USER -p tcp --dport 80 -s 192.168.1.100 -j ACCEPT
添加规则到指定位置
sudo iptables -I DOCKER-USER 3 -p tcp --dport 80 -s 192.168.1.101 -j ACCEPT
参数说明: -I在最前面插入
3.禁止其他所有 IP 的访问
注意iptables规则是从上往下执行的所以这条命令要放在最下面
sudo iptables -A DOCKER-USER -j DROP
参数说明: -A在最后面插入
4.删除规则 (添加或删除会重新排序规则)
删除所有规则
sudo iptables -F DOCKER-USER
删除指定规则
sudo iptables -D DOCKER-USER 4
5.恢复默认规则
sudo iptables -F DOCKER-USER
sudo iptables -I DOCKER-USER -j RETURN
6.持久化规则 (防止重启失效)
iptables默认不会自动保存规则,因此需要使用 iptables-persistent 工具来保存规则
安装 iptables-persistent
sudo apt install iptables-persistent
保存规则
sudo netfilter-persistent save
重新加载规则
sudo netfilter-persistent reload