在 Ubuntu 中通过特定网络安装 docker 后无法连接到互联网

在 Ubuntu 中通过特定网络安装 docker 后无法连接到互联网

在 Ubuntu 18.04 中安装 docker 后,我无法连接到特定的网络!我们有大学网络登录的用户名和密码,问题是我无法再登录了。我使用的 vpn 连接是到服务器的:访问1.sharif.ir
我知道存在类似的问题,例如: 在 Ubuntu 18.04 中安装 docker-ce 会破坏主机的互联网连接
但我没有守护进程.json在我的 docker 文件夹中,我不知道该怎么办。请帮忙!

答案1

您可以尝试执行以下命令:

dhclient -v -4

当我的机器因为 Docker 而丢失连接时它帮助了我。

答案2

注意:此解决方案已在多台计算机上测试沙里夫科技大学在 ubuntu 和 arch 笔记本电脑上。

我在完全相同的网络上遇到了完全相同的问题manjaro (arch linux)。这是因为docker172.27.1.1默认使用的网络与Sharif Universitynetworking中使用的网络完全相同。

我只是改变了docker默认路由,这在docker论坛中有解释这里。为了详细说明,请/etc/docker/daemon.json通过以下方式打开(或创建)文件:

sudo nano /etc/docker/daemon.json

然后添加这个 json 来解决问题(请注意,你应该使用你的机构或公司不使用的东西):

{
    "bip" : "10.10.2.1/24",
    "ipv6": false
}

ifconfig之后,重新启动系统,您就完成了。您还可以使用或命令检查您的docker接口ifconfig docker0

答案3

我在 Debain 10 下遇到了同样的问题。运行dhclient无法修复它,因为它只从 DHCP 服务器获取新的 IP 租约。问题是运行任何 docker 容器都会通过主机站点上的 docker 接口添加新的默认路由:

(base) mkawka@smok:~$ ip route
default dev vethe8e28b3 scope link 
default via 192.168.5.1 dev wlp2s0 
default dev enp3s0 scope link metric 1002 linkdown 
10.99.0.0/16 dev docker0 proto kernel scope link src 10.99.0.1 
169.254.0.0/16 dev enp3s0 proto kernel scope link src 169.254.10.179 linkdown 
169.254.0.0/16 dev vethe8e28b3 proto kernel scope link src 169.254.53.97 
192.168.5.0/24 dev wlp2s0 proto kernel scope link src 192.168.5.4 

编辑:好的,Debian 的解决方案是阻止 Connman 使用 docker 网络接口。为此,请编辑文件/etc/connman/main.conf并确保取消注释以下行:

NetworkInterfaceBlacklist = vmnet,vboxnet,virbr,ifb,ve-,vb-,docker,veth

我猜测对于其他发行版 NetworkManager 可能也有类似的选项。

相关内容