我最近将我的 Xubuntu 从 16.10 升级到 17.04。
除了 systemd-resolv 之外,一切都运行良好。有时它会使 cpu 使用率过高,我不知道为什么会发生这个问题。
这是top命令输出:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1114 systemd+ 20 0 51532 6744 4504 R 100 0.0 9:51.67 systemd-resolve
1152 dnsmasq 20 0 64360 2892 2480 R 38.9 0.0 4:05.53 dnsmasq
1245 root 20 0 376644 89644 64436 S 1.7 0.5 0:35.69 Xorg
1624 asus 20 0 370160 45820 28488 S 0.7 0.3 0:00.90 python2
2238 asus 20 0 2562816 553112 …Run Code Online (Sandbox Code Playgroud) 我们曾经通过以下方式获取当前的 DNS 设置:
cat /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
但是 Ubuntu 12.04 已经改为使用 resolvconf 框架。上面的共同点只会给我这个:
# 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
nameserver 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
这不是我机器的当前 DNS 设置。
那么,有没有我可以参考的文件或命令?
当我尝试 ping google 的 dns 或网络外的任何网络时,我得到了
connect: Network is unreachable什么?
我无法更新我放下的任何一个
我是网络新手……还有 Ubuntu。但这些是我认为可能有帮助的一些命令的结果
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:0e:7f:a9:10:54 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.5/24 brd 192.168.0.255 scope global eth0
inet6 fe80::20e:7fff:fea9:1054/64 scope link
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 18.04 上使用 Raspberry Pi 3。在我的公司,我们有一个 DNS 服务器和几个带有“.local”的域。我知道从技术上讲这是不正确的,它应该是“.lan”,因为 .local 是为多播 dns 保留的。但这就是它的方式,它不能轻易改变。所以在我的 Windows 机器上,我可以毫无问题地 ping 和浏览这些域名。但是在我的 Ubuntu 上我不能。
我无法使用 IP,因为某些域在同一台机器上,而 IIS 网络服务器会整理出哪些内容会发生在何处。
我已经搜索过并且经常出现:
但是,更改 /etc/nsswitch.conf 对我不起作用。我试过
没有一个工作。我也尝试在更改后重新启动。我试图告诉avahi /etc/avahi/avahi-daemon.conf 中的域名=alocal,服务重启后不起作用,重启后不起作用。在这不起作用之后,我尝试完全禁用 avahi-daemon 服务。
sudo systemctl disable avahi-daemon
Run Code Online (Sandbox Code Playgroud)
重新启动后,我再次在 /etc/nsswitch.conf 中尝试了几个排列,但没有效果。
使用我当前在主机(文件 dns)中的设置,我得到以下响应:
dig login.name.local # …Run Code Online (Sandbox Code Playgroud) 在 Ubuntu 16.04 中,我对 VPN 没有任何问题:断开连接后我有互联网。
在 Ubuntu 18.04 中,与 VPN 断开连接后我没有互联网。我实际上可以 ping8.8.8.8但不能,www.google.com因此我在考虑与 DNS 相关的问题。
手动解决方案是执行$ sudo service network-manager reload.
我在 Virtualbox 上安装了一个 Debian 映像,它使用默认的 NAT 访问互联网。在我升级到 12.10 之前它运行良好。升级后,DNS 查找不再有效。我仍然可以访问 IP 地址,但这不是一个好的解决方案。
我刚刚将我的笔记本电脑从 Xubuntu 17.04 升级到 17.10。最后一次重新启动后,DNS 已停止工作。这显然是个问题!我可以 ping 已知的 IP 地址;只是没有DNS解析。
我没有摆弄任何 DNS 设置;据我所知,我以前有标准的 DNS 配置。它只是一台笔记本电脑,它使用 DHCP 从我的家庭 WiFi 路由器获取详细信息。
显然,当系统本身无法解析任何网址时,诊断此问题的能力是有限的。我在手机上进行了一些谷歌搜索,我找到的大多数答案似乎都建议关闭 dnsmasq。但是,dnsmasq 已经关闭。但是/etc/resolv.conf显示 127.0.1.1,这似乎暗示它期望 dnsmasq 正在运行。
我通过编辑/etc/NetworkManager/NetworkManager.conf
和添加打开了 dnsmasq
[main]
dns=dnsmasq
Run Code Online (Sandbox Code Playgroud)
然后我运行了这个命令
sudo systemctl restart NetworkManager
Run Code Online (Sandbox Code Playgroud)
我的 DNS 解析现在正在工作。
但是,鉴于默认的 Ubuntu 配置不使用 dnsmasq,我实际上应该做些什么来诊断和解决这个问题?
在 Ubuntu 14.04 上,我使用 dnsmasq 将通配符 example.com 域解析到本地计算机(家里的台式计算机)。
经过大量阅读后,我终生无法在 18.04 的全新安装中解决相同的问题。
我目前想要达到的目标是:
ping example.com
ping 127.0.0.1 而不是 93.184.216.34;ping anysubdomain.example.com
要同时ping 127.0.0.1;ping google.com
通过路由器/ IP DNS ping真正的google.com。这肯定很简单,甚至是微不足道的?
但我很难过。我可以得到 example.com 的解析,但前提是要破坏其他一切。
我怎样才能做到这一点?
22.04中DNS缓存是如何清除的?
在20.04中有效的方法:
systemd-resolve --flush-caches
Run Code Online (Sandbox Code Playgroud)
不再有效。
我的/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
nameserver 127.0.1.1
# OpenDNS Fallback (configured by Linux Mint in /etc/resolvconf/resolv.conf.d/tail).
nameserver 208.67.222.222
nameserver 208.67.220.220
Run Code Online (Sandbox Code Playgroud)
当我使用nslookup时,我似乎使用了127.0.1.1:
moose@pc08 ~ $ nslookup www.google.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: www.google.com
Address: 173.194.44.17
Name: www.google.com
Address: 173.194.44.16
Name: www.google.com
Address: 173.194.44.19
Name: www.google.com
Address: 173.194.44.18
Name: www.google.com
Address: 173.194.44.20
Run Code Online (Sandbox Code Playgroud)
但是当我右键单击网络管理器并单击“连接信息”时,我得到:

whois 217.0.43.129 表明这属于我的 ISP Deutsche …