限制多个子网与 Docker 主机的连接

Restrict connections to the Docker host for several subnets

我需要限制与 docker 容器的连接。 docker documentation 声明如下:

iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.0/24 -j DROP

在此之后 DOCKER-USER 链开始看起来像这样:

Chain DOCKER-USER (1 references)
target     prot opt source               destination         
DROP       all  -- !192.168.1.0/24       anywhere            
RETURN     all  --  anywhere             anywhere

这工作正常,可以从 192.168.1.0/24 子网访问,none 从其余子网访问。但我的问题是我需要添加几个子网。我尝试用几行替换这一行但没有成功

iptables -I DOCKER-USER 1 -i ext_if -s 192.168.1.0/24 -j RETURN
iptables -I DOCKER-USER 2 -i ext_if -s 10.0.0.0/24 -j RETURN
iptables -I DOCKER-USER 3 -j DROP

链开始看起来像这样:

Chain DOCKER-USER (1 references)
target     prot opt source               destination         
RETURN     all  --  192.168.1.0/24       anywhere            
RETURN     all  --  10.0.0.0/24          anywhere            
DROP       all  --  anywhere             anywhere            
RETURN     all  --  anywhere             anywhere

还尝试了 ACCEPT 而不是 RETURN,但结果是一样的 - 所有内容都被丢弃,无论它来自哪个子网。

有没有办法将工作中的一行分成几行?

P.S。我知道我可以列出用逗号分隔的子网,但这是不可取的,因为我需要添加大约 15 个子网并为每个子网添加注释。

找到解决方案here。 该接口应在 DROP 行中指定。

iptables -I DOCKER-USER 1 -i ext_if -s 192.168.1.0/24 -j RETURN
iptables -I DOCKER-USER 2 -i ext_if -s 10.0.0.0/24 -j RETURN
iptables -I DOCKER-USER 3 -i ext_if -j DROP