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

229 天前
 codeself

家庭局域网 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 root@192.168.50.2,输入密码前的所有步骤都是正常的,只是输对了密码都会提示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文件内容有问题吗?
608 次点击
所在节点    Docker
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/977320

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX