![Ubuntu 18.04 升级后无法访问 DNS](https://linux22.com/image/900261/Ubuntu%2018.04%20%E5%8D%87%E7%BA%A7%E5%90%8E%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%20DNS.png)
我最近使用 将我的 Ubuntu 虚拟机 (VirtualBox 5.2.8) 从 ubuntu 16.04 升级到 18.04 do-release-upgrade -d
。升级过程中出现了很多问题。我不得不使用 apt-get install -f 和 apt-get dist-upgrade 重新启动/恢复升级。不过,它最终完成了。
现在由于某种原因,我必须在sudo dhclient enp0s3
每次重启时手动运行才能使其正确接收网络。
我该如何设置它才能正确启动?
我注意到以下情况in /var/log/syslog
11291 May 2 13:24:07 my-vm dhclient[1416]: /var/lib/NetworkManager/dhclient-enp0s3.conf line 47: semicolon expected.
11292 May 2 13:24:07 my-vm dhclient[1416]: send
11293 May 2 13:24:07 my-vm dhclient[1416]: ^
11294 May 2 13:24:07 my-vm dhclient[1416]: /var/lib/NetworkManager/dhclient-enp0s3.conf line 47: expecting a statement.
11295 May 2 13:24:07 my-vm dhclient[1416]: send host-name "my-vm";
11296 May 2 13:24:07 my-vm dhclient[1416]: ^
11297 May 2 13:24:07 my-vm dhclient[1416]: /var/lib/NetworkManager/dhclient-enp0s3.conf line 50: semicolon expected.
11298 May 2 13:24:07 my-vm dhclient[1416]: option
11299 May 2 13:24:07 my-vm dhclient[1416]: ^
11300 May 2 13:24:07 my-vm dhclient[1416]: /var/lib/NetworkManager/dhclient-enp0s3.conf line 71: no option named ms-classless-static-routes in space dhcp
11301 May 2 13:24:07 my-vm dhclient[1416]: also request ms-classless-static-routes;
11302 May 2 13:24:07 my-vm dhclient[1416]: ^
11303 May 2 13:24:07 my-vm dhclient[1416]: /var/lib/NetworkManager/dhclient-enp0s3.conf line 71: ms-classless-static-routes: expected option name.
11304 May 2 13:24:07 my-vm dhclient[1416]: also request ms-classless-static-routes;
11305 May 2 13:24:07 my-vm dhclient[1416]: ^
11306 May 2 13:24:07 my-vm dhclient[1416]: DHCPREQUEST of 10.0.2.15 on enp0s3 to 255.255.255.255 port 67 (xid=0x20425ef9)
11307 May 2 13:24:07 my-vm dhclient[1416]: DHCPACK of 10.0.2.15 from 10.0.2.2
手动运行时dhcpclient enp0s3
我发现不同线路上存在问题。
13097 May 2 15:37:32 my-vm dhclient[5756]: /etc/dhcp/dhclient.conf line 28: semicolon expected.
13098 May 2 15:37:32 my-vm dhclient[5756]: timeout
13099 May 2 15:37:32 my-vm dhclient[5756]: ^
13100 May 2 15:37:32 my-vm dhclient[5756]: /etc/dhcp/dhclient.conf line 28: expecting a statement.
13101 May 2 15:37:32 my-vm dhclient[5756]: timeout 300;
13102 May 2 15:37:32 my-vm dhclient[5756]: ^
13103 May 2 15:37:32 my-vm dhclient[5756]: /etc/dhcp/dhclient.conf line 28: semicolon expected.
13104 May 2 15:37:32 my-vm dhclient[5756]:
13105 May 2 15:37:32 my-vm dhclient[5756]: ^
13106 May 2 15:37:32 my-vm dhclient[5756]: DHCPREQUEST of 10.0.2.15 on enp0s3 to 255.255.255.255 port 67 (xid=0x392381bf)
13107 May 2 15:37:32 my-vm dhclient[5756]: DHCPACK of 10.0.2.15 from 10.0.2.2
编辑
我修复了文件中的错误var/log/syslog
。我在一行中缺少一个分号/etc/dhcp/dhclient.conf
但这并没有解决问题。
我发现了这个:
15687 May 2 16:30:12 mds-vm dnsmasq[1424]: chown of PID file /run/NetworkManager/dnsmasq.pid failed: Operation not permitted
...
15690 May 2 16:30:12 mds-vm NetworkManager[897]: <info> [1525293012.4308] dnsmasq[0x5601285fd1e0]: dnsmasq appeared as :1.26
编辑
我尝试重新安装:
sudo apt-get install --reinstall dnsmasq dnsmasq-base network-manager network-manager-config-connectivity-ubuntu isc-dhcp-client
但它并没有解决问题。
编辑
我退出dns=dnsmasq
了/etc/NetworkManager/NetworkManager.conf
,一切似乎都正常了。
答案1
我从 /etc/NetworkManager/NetworkManager.conf 中删除了 dns=dnsmasq,一切似乎都正常了。
使用 dnsmasq 确实已“弃用”,因为 Ubuntu 18.04 LTS 默认改为使用 systemd-resovled。虽然仍然可以恢复并使用dnsmasq
NetworkManager,但可能还需要禁用或重新配置 systemd-resolved 以避免冲突。例如,我不得不恢复使用 dnsmasq,因为resolvconf:如果 systemd-resolved 管理 DNS,则使用 /run/systemd/resolve/resolv.conf目前仍未反向移植到 Ubuntu 18.04 LTS 中的 docker CE 版本,并导致容器无法解析阻止访问 docker 所依赖的默认公共 DNS 服务器的企业网络上的 DNS。
chown of PID file /run/NetworkManager/dnsmasq.pid failed: Operation not permitted
上述警告并非致命问题,dnsmasq 仍可与 NetworkManager 一起使用。此问题已在 dnsmasq-base 基础软件包版本2.79-1
(和2.78-3
)中得到解决,方法是将失败的 chown 操作降级为警告。请参阅:Debian 错误报告日志 - 889857 条消息 10。
还,从 2.78-2 到 2.78-3 的差异。下面这行代码却生成了警告:
my_syslog(LOG_WARNING, "chown of PID file %s failed: %s", daemon->runfile, strerror(chown_warn));
答案2
从 16.04(xenial)升级到 18.04(bionic)后,网络管理器没有 DNS。
虽然我在 GUI 中编写了 DNS。
确实,删除dns=dnsmasq
对我有帮助。
非常感谢!