我有一台运行Ubuntu 16.04的笔记本电脑已连接到两个不同的网络(实际上,我有5种不同的笔记本电脑型号都遇到这种情况)。一个是无线网络,另一个不是。在这两个网络上,我有不同的DNS服务器。
我经常遇到这样的情况:尝试ping或建立与已知主机的ssh连接时,出现“未知主机”错误,我每秒可以运行五个ping命令,有时全部五个都可以通过,有时只有一个或两个(或没有)。在主机名上使用“ nslookup”时,我会遇到相同的情况。当使用带有IP地址的SSH时,我从不会收到任何错误。这使我相信Ubuntu会随机选择要使用的网络的DNS服务器。
那么,如果其中一个不知道主机,有没有办法选择应该使用哪个网络的DNS服务器,或者让Ubuntu询问这两个网络呢?
“ ip路由列表”列出了网络的不同指标,其中一项设置为100,另一项设置为600。
如果还有其他可能相关的信息,请告诉我。
/etc/resolv.conf的内容:
由resolvconf(8)生成的glibc resolver(3)的动态resolv.conf(5)文件,请勿
手工编辑此文件-您的更改将被覆盖名称服务器127.0.1.1
search xx.yy.zz
ip路由列表输出
默认通过10.80.0.1 dev enp0s25 proto静态度量标准100
默认通过10.125.64.1 dev wlo1 proto静态度量600 600
10.80.0.0/24 dev enp0s25 proto内核作用域链接src 10.80.0.54 metric 100
10.125.64.0/19 dev wlo1 proto内核作用域链接src 10.125.83.244 metric 600
10.220.2.16通过10.80.0.1 dev enp0s25 proto dhcp metric 100
169.254.0.0/16 dev enp0s25作用域链接metric 1000
192.0.2.1通过10.125.64.1 dev wlo1 proto dhcp metric 600
user@host:~$ nmcli dev show enp0s25 | grep DNS
IP4.DNS[1]: 10.220.2.5
user@host:~$ nmcli dev show wlo1 | grep DNS
IP4.DNS[1]: 10.220.2.24
Ubuntu本身总是使用所有DNS。如果在第一个DNS上找不到一个地址,它将尝试第二个可用的地址。
因此,您的解决方案是,因为我们看到您/etc/resolv.conf
为空-但您提供的信息表明您拥有由dhcp正确分发的DNS服务器。
现在,您可以禁用NetworkManager,而只是使用可以立即解决问题的界面,或者您可以查看/etc/NetworkManager/NetworkManager.conf
并查找该行dns=XXXXXX
并删除该行或对该行进行注释。
重新启动NetworkManager sudo systemctl restart NetworkManager.service
,现在应在其中设置DNS/etc/resolv.conf
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句