V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Forbidden
V2EX  ›  Docker

网络是通的,但无法连接到 docker 网络

  •  
  •   Forbidden · 2022-08-17 22:22:16 +08:00 · 1168 次点击
    这是一个创建于 827 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我为了能直接访问 docker 内部,我在路由器上加了静态路由,172.17.0.0/16 指向宿主机
    A 是宿主系统 PhotonOS4/debian11(192.168.10.2),
    B 是容器(172.17.0.2),C 是 win10(192.168.10.3)
    AB 能互 ping ,AC 能互 ping ,
    BC 之间刚开始能互 ping ,但是什么都没动过了 1 天就连不上了,B 能 pingC ,但 C 不能 pingB
    重启了宿主 A ,重启了服务,没有变化
    traceroute 能看到 A 响应第二跳了,就是容器一直没有反应

    奇了个怪,以前也搞过这样的操作也没问题,而且这不是跨主机访问容器的方法吗,怎么失效了?
    4 条回复    2022-08-18 10:34:18 +08:00
    chuckzhou
        1
    chuckzhou  
       2022-08-17 23:33:09 +08:00
    缺省 B 在 NAT 后面,C 肯定是 ping 不到 B 的。
    你看看是不是 masquerade 又被 docker engine 自动打开了。
    还有 net.ipv4.ip_forward 是不是 1 ?
    chuckzhou
        2
    chuckzhou  
       2022-08-17 23:35:20 +08:00
    而且访问容器基本不这么做。正常就是用 -p 把业务端口暴露出来就行了。
    Forbidden
        3
    Forbidden  
    OP
       2022-08-18 09:53:28 +08:00
    @chuckzhou net.ipv4.ip_forward = 1 ,开 /关 masquerade 都试了,都不行

    按正常脑子没病都不会这样操作,我属于脑子有病,用动态端口,而且还定时换端口
    我能想出来改动最小的就是用 静态路由+upnp ,都是现成的功能,都不需要太多额外设置
    Forbidden
        4
    Forbidden  
    OP
       2022-08-18 10:34:18 +08:00
    @chuckzhou 解决了,iptables forward 链 drop 改成 accept ,能 ping 通容器了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2717 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 00:28 · PVG 08:28 · LAX 16:28 · JFK 19:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.