简洁版本:使用 wicd 进行网络连接时,如何将“名称服务器”永久保存在resolve.conf 中?
长版:尝试在 Ubuntu Server 中更新 apt-get 后收到以下错误消息:
Err:1 http://security.ubuntu.com/ubuntu zesty-security InRelease
W: Failed to fetch http://ca.archive.ubuntu.com/ubuntu/dists/zesty/InRelease Could not resolve 'ca.archive.ubuntu.com'
看起来像是 DNS 错误,所以我检查了 /etc/resolve.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
我手动编辑了该文件并添加了:
nameserver 8.8.8.8
nameserver 8.8.4.4
到最后。运行“apt-get update”,一切都很顺利。
当然,问题是resolve.conf 经常被破坏,所以我尝试使用WICD 手动设置DNS 服务器。我进入 wicd-curses,选择我使用的无线网络,并设置以下选项:
[X] Use Static DNS [ ] Use global DNS servers
DNS domain: google.com
Search domain:
DNS server 1: 8.8.8.8
DNS server 2: 8.8.4.4
DNS server 3:
并重新启动我的电脑。打开resolve.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
search google.com
无论如何尝试了 apt-get update,但它失败了,并出现与之前相同的错误。
接下来我尝试打开 /etc/wicd/dhclient.conf.template 并附加以下内容:
prepend domain-name-servers 8.8.8.8 8.8.4.4;
但这对resolve.conf没有影响。
我不经常搞乱网络(或者至少在这个层面上);我在设置 DNS 服务器时是否犯了一些根本性错误或缺陷?
答案1
您的问题是resolvconf(8)
假设systemd-resolved
正在运行并将nameserver 127.0.0.53
条目写入/etc/resolv.conf
.您可能想检查一下/etc/resolvconf.conf
包含哪些内容。另请参见man 8 resolvconf
和man 5 resolvconf.conf
。如果systemd-resolved.service
正在运行,您可能还想禁用它。
(或者,也许退一步,重新考虑一下您是否真的对 Ubuntu 处理开箱即用的网络设置的方式不满意。)
答案2
在 wicd Ubuntu 网络管理器中,请找到并取消选中自动获取 DNS 服务器的选项,并将其手动设置为8.8.8.8
&8.8.4.4
网络管理器正在从上游 ISP 获取 DNS 地址并更新它。
当您使用网络管理器的 GUI 工具时,您可以从 GUI 更新 DNS 首选项选项。
查找程序和图像https://askubuntu.com/questions/87468/how-to-specify-dns-ip-in-wicd