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

记录一次 AIO(ALL IN BOOM)只有安卓无法使用旁路由,但苹果/pc 设备正常使用旁路由的问题

  •  
  •   codeself · 2023-09-26 17:11:13 +08:00 · 729 次点击
    这是一个创建于 401 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家庭局域网 AIO 中在 docker-compose 指定容器联网方式导致只有安卓无法使用旁路由但是其他设备正常的问题

    〇、这个问题原理没搞明白

    最终只是使用docker network rm NETWORK-ID把一个网络删除了.

    然后安卓访问就正常了!

    一、网络拓扑图

    网络拓扑

    二、前情提要

    在内网中使用 Cloudflare Zero-Trust 的 Tunnel 进行内网穿透,访问 alist 等其他通过 pve 中 docker 起来的服务.

    因为 Cloudflare 在中国大陆没有节点的原因,感觉 Tunnel 把内网资源传出去的过程会很慢,

    加上我在内网搞了个openwrt+openclash的旁路网关.

    所以我打算指定 Cloudflare 这个容器的网关和 dns 为192.168.50.2,

    使用旁路网关中的openclash加速资源传输过程.

    三、爆炸过程

    3.1 docker-compose 配置

    version: '3'
    services:
      cloudflared:
        image: cloudflare/cloudflared:latest
        command: tunnel --no-autoupdate run --token xxxxxx
        networks:
          openwrt:
            ipv4_address: 192.168.50.210
        dns:
          - 192.168.50.2
          - 223.5.5.5
        restart: always
    networks:
      openwrt:
        driver: bridge
        ipam:
          config:
            - subnet: 192.168.50.0/24
              gateway: 192.168.50.2
    

    3.2 启动命令

    docker-compose up -d
    

    3.3 启动后的表现

    1. 内网的所有指定网关/DNS 为192.168.50.2的设备无法使用openwrt的 DNS 服务

    2. 过一会使用docker ps -a

      • 发现cloudflared这个容器已经Exit(1)
    3. pc/苹果设备已经可以正常使用openwrt的 DNS 服务了

    4. 此时安卓设备访问不了 openwrt 的 ip 地址: 192.168.50.2

      • 不管在安卓上有没有指定网关/DNS 为192.168.50.2,chrome 访问结果是"ERR_CONNECTION_REFUSED"
      • 使用termux执行ssh [email protected],输入密码前的所有步骤都是正常的,只是输对了密码都会提示permission denied
    5. 不管在苹果/pc 设备上有没有指定网关/DNS 为192.168.50.2

      • 访问 openwrt 的管理页面http://192.168.50.2是正常的

    4. 问题解决

    4.1 删掉cloudflared这个容器

    docker remove Container-ID
    

    4.2 删除给cloudflared创建的网络

    root@pve:~/docker/cloudflare# docker network ls
    NETWORK ID     NAME                 DRIVER    SCOPE
    421a2ba25e82   alist_default        bridge    local
    246c480bfc7f   bridge               bridge    local
    8abc743abbc3   cloudflare_openwrt   bridge    local
    1be41448b667   host                 host      local
    8d4a82a656ba   none                 null      local
    84dde4a12e92   root_default         bridge    local
    root@pve:~/docker/cloudflare# docker network rm 8abc743abbc3
    8abc743abbc3
    

    5. 疑问

    1. 为什么会出现这个情况,怎么排查这个原因?
    2. 基于我前情提要里的需求,docker-compose文件内容有问题吗?
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3362 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:06 · PVG 08:06 · LAX 17:06 · JFK 20:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.