我无法保留通过 设置的名称服务器地址/etc/resolv.conf
。每次我设置该值时,网络管理器都会在重启时用默认网关覆盖它。
如何正确设置?
我更喜欢除了在路由器中更改名称服务器之外的其他方法。
答案1
视情况而定。请读到最后。
如果你没有软件包 resolvconf安装后,就很简单了:按照你喜欢的方式更改后,发出命令
sudo chattr +i /etc/resolv.conf
该命令改变文件属性,使其成为immutable
(+i 选项)。
但是,如果你安装了 resolvconf 软件包,文件 /etc/resolv.conf 可能会转换为符号链接,
# file /etc/resolv.conf
/etc/resolv.conf: symbolic link to `../run/resolvconf/resolv.conf'
这是虚拟文件系统上的文件,是非永久版本的缩影。有趣的是,您可能不知道已经安装了 resolvconf,因为 Debian 类操作系统的最新版本都预装了它。您可以通过发出以下命令来确定您的发行版是否已为您安装了它:
#whereis resolvconf
resolvconf: /sbin/resolvconf /etc/resolvconf /lib/resolvconf /usr/share/man/man8/resolvconf.8.gz
最重要的是,你可以/etc/resolv.conf
通过上面的命令(文件 /etc/resolv.conf)确定你的 是否已经转换为链接。如果答案是ASCII text
,则使用chattr
,否则...
如果您使用静态 IP,最简单的方法是添加以下行(或类似内容)
dns-nameservers 8.8.4.4 8.8.8.8
到 /etc/network/interfaces 中定义静态接口属性的部分。
如果你使用的是一台始终连接到不同网络的笔记本电脑,你可以遵循LawrenceC
这个极好的建议。但是,如果你有解析配置在您的系统上,提供一组固定 DNS 的正确(也是最简单)方法是使用/etc/resolvconf/resolv.conf.d。具体来说,使用以下文件(参见Stephane Graber 的页面):
根据:当找不到其他数据时使用
头:用于 resolv.conf 的标头,可用于确保 DNS 服务器始终是列表中的第一个
尾巴:尾部的任何条目都会附加到生成的 resolv.conf 的末尾。
因此,请将您喜欢的域名服务器放在头, 如下
nameserver 8.8.8.8
您已经完成。
答案2
添加类似的行以/etc/dhcp/dhclient.conf
使用根终端:
supersede domain-name-servers 74.122.198.48, 50.116.23.211;
这将导致dhclient
发出 DHCP 请求并根据响应内容进行更改的程序在进行更改之前用上述信息替换从 DHCP 服务器获得的信息。
以上是两个 OpenNIC DNS 服务器。请根据需要替换为您想要使用的服务器。
由于每当您从 DHCP 获取配置信息时都会发生这种情况,因此使用dhclient -v eth0
或任何界面来刷新它并查看更改。
答案3
遇到了同样的问题,但我使用的是静态 IP 地址。解决方法是在 /etc/network/interfaces 中添加 dns
iface eth0 inet static
address [your ip>
netmask [your netmask]
network [your network]
broadcast [your broadcast]
gateway [your gateway]
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers [dns server1] [dns server2]
dns-search [your domain]
答案4
如果您使用 wicd,请右键单击图标,然后单击连接信息。当窗口打开时,单击您连接的属性。
检查使用静态 DNS,在 DNS 服务器 1 行中输入 Google DNS 的 IP 8.8.8.8
,在 DNS 服务器 2 行中输入8.8.4.4
,然后单击“确定”。
如果您收到默认设置的错误,您可以联系您的 ISP 并告知他们。当您与他们连接时,他们通常会为您的调制解调器分配 DNS 服务器。