||
把笔记本电脑(联想Y460)的操作系统从Ubuntu 16.04LTS升级到了Ubuntu 17.10, 发现WIFI无线网络能够连接上, 但就是上不了网, 比如无法访问百度(www.baidu.com)网页。 但是如果利用网线来接入有线网络, 则能够正常访问网页。
在连接WIFI无线网络的情形下, 通过ping www.baidu.com操作发现没有响应,通过ping 192.168.1.1(后者即路由器或网关的IP地址)则能够收到响应,通过ping 183.232.231.172(后者即www.baidu.com对应的IP地址)能够收到响应, 在网页浏览器里访问地址183.232.231.172则能够正常打开百度首页 , 因此可以判断出是操作系统的DNS解析出了问题。
查看DNS服务器配置文件\etc\resolv.conf, 里面的内容是:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.53
可见DNS的默认地址被设定为127.0.0.53, 而不是路由器或网关或DNS服务器的IP地址。 将上述文件作如下修改:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
#nameserver 127.0.0.53
nameserver 192.168.0.1
nameserver 0.0.0.0
然后,重启一下WIFI无线网络, 就可以正常访问互联网了。
PS: 重启电脑后,发现问题依旧。重新查看DNS服务器配置文件\etc\resolv.conf, 里面的内容变回原来的样子了。 原因是resolv.conf文件被系统程序自动维护。为了防止该文件被跟改,可以为其添加独占权限,即执行
sudo chattr +i /etc/resolv.conf
然而结果显示Operation not supported while reading flags on /etc/resolv.conf, 从而无法执行。由于 resolvconf 包阻止resolv.conf的属性被chattr命令修改,因而可执行
sudo apt-get remove resolvconf
以删除该软件包。但是对resolv.conf文件的chattr操作依然无法执行。这其实是由系统管理resolv.conf文件的方式所导致的。用ls -l /etc/resolv.conf查看文件属性,会发现resolv.conf是指向另一个文件的软链接。只有当/etc/resolv.conf是个真实的文件时,系统才会采用该文件里配置的DNS服务器地址。因此解决问题的办法就是将软链接型的resolv.conf删除或重命名,然后创建新的resolv.conf文件并将DNS服务器的地址写进去, 即执行以下操作:
sudo mv /etc/resolv.conf /etc/resolv.conf.link
sudo vim /etc/resolv.conf
mv用来重命名, vim用来创建和写入内容。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-1 14:42
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社