我在 Amazon Linux 2 EC2 实例上有 OpenVPN,需要通过它转发数据包。在我开始docker
实例之前它一直有效。然后 FORWARD 策略变为 DROP 并且 VPN 停止工作。
[root@ip-... ~]# iptables -L FORWARD
Chain FORWARD (policy ACCEPT) <<< See it's ACCEPT
target prot opt source destination
然后我启动 docker 并再次检查:
[root@ip-... ~]# systemctl start docker
[root@ip-... ~]# iptables -L
Chain FORWARD (policy DROP) <<<< Turned to DROP
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
我试图设置策略,/etc/sysconfig/iptables
但这无济于事。
这似乎特定于 Amazon Linux 2,我在 Ubuntu 上似乎没有这个问题。
有任何想法吗?
这是一个已知的行为,记录在这里:路由器上的 Docker
解决方案是将
ACCEPT
规则添加到DOCKER-USER
链中:要使此更改永久生效,您可以将其放入
/etc/sysconfig/iptables
:这将预先创建
ACCEPT
规则,当 docker 启动并将FORWARD
策略更改DENY
为数据包转发时仍然有效。希望有帮助:)