You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker创建网络挂起导致Ubuntu服务器VPN侧SSH连接中断问题问询

根因

核心问题是Docker自动创建的网桥网段和你VPN使用的网段发生了路由冲突:

  • 你提供的网卡信息显示,compose启动时创建的网桥br-05fb571c05ec使用192.168.16.0/20网段,可覆盖192.168.16.1~192.168.31.254的所有地址
  • Docker创建网桥时会自动在服务器路由表添加该网段的直连路由,优先级高于VPN的静态路由
  • 当你的VPN客户端所在网段刚好落在192.168.16.0/20范围内时,服务器回传给VPN的流量会被错误路由到空的Docker网桥,导致VPN链路断连,和22端口是否被占用无关
解决方法

1. 全局配置Docker默认地址池(推荐,一劳永逸)

修改Docker全局配置,指定所有新建网桥都从无冲突的地址段分配IP:

  • 编辑/etc/docker/daemon.json(文件不存在则新建),添加如下配置,将base字段替换为确定不会和你的VPN、本地局域网冲突的私有网段:
{
  "default-address-pools": [
    {"base":"10.20.0.0/16","size":24}
  ]
}
  • 执行命令重启Docker服务生效:
    systemctl restart docker

注意:该配置仅对后续新建的Docker网络生效,已经存在的网桥需要手动删除重建。

2. 单项目指定网络网段(仅针对当前compose项目生效)

直接在你的docker-compose.prod.yml中手动指定默认网络的网段,避免自动分配到冲突段:
在yml配置文件末尾添加如下内容,将subnet替换为无冲突的网段:

networks:
  default:
    driver: bridge
    ipam:
      config:
        - subnet: 10.20.10.0/24

修改后重新启动compose项目即可。

验证方法

修改配置前可执行ip route命令查看路由表,故障发生时如果看到192.168.16.0/20路由指向br开头的Docker网桥,即可确认是网段冲突问题。

内容的提问来源于stack exchange,提问作者odyssy3105

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:36:00