博主的系统是 Ubuntu 20.04.3 LTS,用于登录校园网的浏览器是 Google Chrome版本是 92.0.4515.159。在浏览器中输入校园网登录链接,结果一直返回的是 无法访问此网站,如下图所示:
01 检查网络连接
1.1 物理链接
出现这种情况,我的第一反应就是可能是线缆或者路由器出了问题。
首先,我插拔了几次主机的网线,没有解决问题,仍然弹出一样的报错页面。
然后,检查了路由器连接情况,并重启了路由器,仍然没有解决。
最后,我将接入本机的线缆插到一台 Windows 系统的主机上,发现可以顺利打开校园网登录页面,由此得出物理连接并没有问题。
1.2 网络链接
进一步考虑,网络链接故障也有可能是防火墙或者网络代理导致的
使用如下命令先关闭防火墙:
sudo iptables -F
浏览器重试校园网登录链接之后仍然报错,然后如下图尝试关闭网络代理,也无法解决问题,由此得出网络连接也没有问题。
02 检查浏览器
检查浏览器是否存在问题直接方法就是换一个浏览器访问,我将校园网登录链接复制到本机的Firefox浏览器上进行访问,仍然报错且更加抽象,不过也证明了应该不是浏览器的问题。
如果你更换浏览器后可以成功登录,那么可以推断出是原浏览器的问题,而且 Chrome 的报错是ERR_ADDRESS_UNREACHABLE
,根据这个保存百度可以得到一些解决方法,主要的操作就是清缓存。
2.1 Cookie 缓存
首先可以尝试清除 Chrome 的数据缓存,在选项栏中选择设置 -> 隐私设置和安全性 -> 清除浏览数据。
2.2 DNS 缓存
如果,仍不能解决问题,可以尝试情况 Chrome 的 DNS 缓存,在浏览器中输入 URL chrome://net-internals/#dns
,然后点击 clean 清除 dns 缓存,如下图所示
03 检查网络接口
对浏览器的缓存清理之后,仍然没有解决我无法访问校园网登录页面的问题,最终考虑到是否可能存在校园网登录服务器IP与本机的网络接口存在冲突的问题。
使用 ifconfig
命令查看本机网络接口如下,可以看到第一个网络接口的网段与校园网登录的访问IP172.18.18.60
冲突,导致本机一直无法正确访问校园网登录链接
尝试使用 ifconfig
关闭冲突的网络接口 ifconfig <interface name> up/down
,up 是打开网路接口,down是关闭网络接口
sudo ifconfig br-4f97b10a424b down
执行上述命令之后,可以看到冲突网络接口已经被关闭
再次尝试使用浏览器打开校园网登录链接,终于见到了期待已久的页面,问题解决!!!
04 解决后记-Docker虚拟网卡网段冲突
安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host,网络也是docker的弱势所在,往往会带来很多问题,网段冲突就是其中之一。Docker 网络原理可以参考Docker网络详解——原理篇
所以使用 ifconfig 命令列出的 br-xxx
的网桥一般是docker创建的
还是以上面的例子他的虚拟网卡名称为 br-4f97b10a424b
在终端中使用命令 docker network ls
查看 docker 的网络如下
可以看到冲突的虚拟网卡,使用如下命令可查看有哪些容器在使用
docker inspect <网桥id>
# 或者
docker network inspect <网桥id>
如果没有容器使用可以使用如下命令删掉它:
docker network rm <网桥id或名字>
参考资料
Linux (ifconfig/docker) 移除网桥/虚拟网卡
Docker网络详解——原理篇