Wong's Blog

Always on the way forward
  1. 首页
  2. 其他
  3. 正文

openWRT中的docker无法连接互联网处理办法

2025 年 4 月 3 日 157点热度 0条评论

openWRT中的docker在创建镜像的时候,如果选择bridge,可能会出现可以访问网关,却无法访问外网的问题.

可能的设置问题:
com.docker.network.bridge.enable_ip_masquerade": "false"

由于bridge是docker自动生成的网络,无法修改.

说明:

"com.docker.network.bridge.enable_ip_masquerade": "false" 是 Docker 网络配置中的一个选项,它的作用是控制 IP 伪装(IP Masquerading)功能是否启用。

作用

当该选项设置为 false 时,Docker 不会对从容器到外部网络的流量执行 IP 伪装(NAT)。这意味着:

1. 容器的流量不会使用宿主机的 IP 地址进行伪装,而是保留容器的源 IP 地址。

2. 如果容器的 IP 地址不是路由可达的(比如 172.17.0.0/16 默认 Docker 网络),那么容器可能无法访问外部网络。

3. 可能会影响容器访问互联网,特别是当宿主机不进行额外的 NAT 规则配置时。

默认值

Docker 默认情况下会启用 IP 伪装(即 "com.docker.network.bridge.enable_ip_masquerade": "true"),这样容器的流量在通过宿主机时会被转换,使其看起来像是从宿主机发出的,这样可以让容器更方便地访问外部网络。

解决办法:

  • 网络—>防火墙—>常规设置—>forward:accept
  • 网络—>防火墙—>custom Rules—>添加:iptables -t nat -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE —>保存
  • (在命令行界面设置iptables,重启后会丢失)
  • 标签: 暂无
    最后更新:2025 年 4 月 3 日

    wong

    这个人很懒,什么都没留下

    点赞
    < 上一篇
    • Linux / 6篇
    • Macos / 7篇
    • Windows / 9篇
    • 其他 / 9篇

    在路上 | 2024