无法将 iptables 防火墙规则正确添加到 Docker 容器

Cannot add iptables firewall rules properly to Docker container

我想为 Docker 容器创建一个防火墙,它只允许某些 IP 而拒绝其他 IP。

默认设置是这样的:

$ sudo iptables --list
Chain DOCKER-USER (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

如 Docker 文档中所述,这允许所有传入 IP。 所以我正在修改这个。我运行以下命令:

sudo iptables -D DOCKER-USER -j RETURN
sudo iptables -A DOCKER-USER -s xx.xx.xx.xx,yy.yy.yy.yy -j ACCEPT
sudo iptables -A DOCKER-USER -j DROP

这应该有效, 我的预期结果是,如果我尝试从 zz.zz.zz.zz IP 访问服务器,它将被拒绝,但是从 xx.xx.xx.xx,它将通过。

但现在的结果是,无论我是从xx.xx.xx.xx(或yy.yy.yy.yy)还是zz.zz.zz.zz访问,页面都告诉我“连接失败”。所以显然它正在被删除。

我不知道发生了什么,这个问题的原因是什么。感谢您的帮助。

按照记录指定 -i 选项。

sudo iptables -I DOCKER-USER -i eth0 ! -s your.ip.add.res -j DROP