首页 > 解决方案 > Docker 在管理员添加的规则之上插入 iptable 后路由规则

问题描述

我必须在 NAT 表 POSTROUTING 链中添加一些 iptable 条目,以允许 docker 容器通过主机(to_source)的不同源地址/源接口访问互联网。

一切正常。

前任:

target     prot opt source               destination
SNAT       all  --  100.100.8.0/22       10.1.2.3       to:100.64.0.5

但是,当 docker 服务重新启动时,它会在我的条目顶部插入 MASQUERADE 规则,因此我上面的修复被屏蔽了。Docker 容器现在无法访问互联网。

前任:

target     prot opt source               destination
MASQUERADE  all  --  100.100.8.0/22       0.0.0.0/0
SNAT        all  --  100.100.8.0/22       10.1.2.3       to:100.64.0.5

无论如何,即使在 docker 重新启动后,我的 POSTROUTING 规则也始终保持在链的顶端?

标签: linuxdockernetworkingiptables

解决方案


您可以添加--iptables=false到您的 docker 守护程序启动选项,以阻止它对 iptables 规则进行更改。

参考: https ://docs.docker.com/engine/reference/commandline/dockerd/


推荐阅读