![VPN 背后的 Docker](https://linux22.com/image/909713/VPN%20%E8%83%8C%E5%90%8E%E7%9A%84%20Docker.png)
当我在 Ubuntu 16.04 笔记本电脑上启动公司 VPN 时,我得到了一堆静态路由。其中包括 172.26.0.0/16(我在 kern.log 中检查了这一点,当我运行路由时它也会显示出来)。这在大约一周内运行良好,但突然它停止工作了。
由于某种原因,我可以 nslookup IP 地址,但 ping(或 traceroute 或 dig)返回“未找到主机”错误。
如果我通过 nm-applet 在 VPN IPv4 设置中将路由作为静态路由输入,然后重新启动 VPN,那么我确实可以 ping 通服务器并且可以成功 ping 通。
然而,这似乎会杀死我完成工作所需运行的所有 docker 镜像的网络功能,而之前这些功能运行良好。
我尝试重新安装用于连接 Cicso AnyConnect 服务器的 openconnect 包,但仍然无法运行。
我在网上搜索了一段时间,找到最接近的匹配是这个帖子Ubuntu 18.04 突然无法访问 VPN 网络上的资源?不用说,这几乎不会带来任何安慰。我尝试了@crip659 提供的解决方案,但对我来说不起作用。
我真的希望有人能阐明这一点。
编辑
这可能是因为我的 docker0 网桥的 IP 地址与其中一个静态路由的 IP 范围相吻合吗?
答案1
所以我解决了这个问题。
显然,问题确实是 docker0 网桥和其中一条静态路由中的 IP 范围之间的 IP 冲突。
我已经尝试为 docker0 网桥分配一个新的 IP 地址,通过输入命令插入“bip”条目sudo nano /etc/docker/daemon.json
并编辑文件使其看起来与此有些相似。
{
"bip":"171.2.2.0/8"
}
但我尝试过的所有其他地址都sudo systemctl restart docker
失败了。
我不知道(现在仍然不知道)该选择哪个 IP 地址,所以171.2.2.0/8
我认为这只是个侥幸猜想。也许以后会造成问题,但那是另外一回事了。