Ram*_*Ram 6 linux networking iptables docker
我必须在 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
Run Code Online (Sandbox Code Playgroud)
但是,当重新启动 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
Run Code Online (Sandbox Code Playgroud)
有没有办法让我的 POSTROUTING 规则即使在 docker 重新启动后也始终保持在链的顶部?
如果您的主机上安装了 Ubuntu,则可以iptables-save在启动 docker 守护程序后使用该实用程序将 iptables 规则保存到文件中。然后,一旦刷新旧规则,您就可以使用iptables-restore保存的规则文件简单地恢复原始的 docker 规则。
如果您不想恢复所有旧的 iptables 规则,您可以更改保存的规则文件以仅保留您需要的规则。
| 归档时间: |
|
| 查看次数: |
1290 次 |
| 最近记录: |