Answers:
这取决于。请仔细阅读。
如果您没有安装软件包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-like OS的最新版本。您可以通过发出以下命令来确定发行版是否已为您安装了发行版:
#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
的出色建议。但是,如果您的系统上装有resolvconf,则提供一组固定的DNS的正确(最简单)方法是使用/etc/resolvconf/resolv.conf.d中的文件。特别是,使用了以下文件(请参阅Stephane Graber的页面):
base:当找不到其他数据时使用
head:用于resolv.conf的标头,可用于确保DNS服务器始终是列表中的第一个服务器
tail:任何在tail中的条目都将附加在结果resolv.conf的末尾。
因此,将您喜欢的名称服务器放在head中,如下所示
nameserver 8.8.8.8
到此为止。
LawrenceC
,这是下面的一个。
/etc/resolvconf/
在Ubuntu 18.04上默认不存在。
添加与/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
或任何接口刷新它并查看更改。
prepend domain-name-servers 8.8.8.8
。这将在可用时使用ISP的DNS。
有同样的问题,但我使用静态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]
/etc/network/interfaces
。接得好!
chattr +i
最多只能通过一种快速的方法来解决问题,并且应该尽可能避免(至少是长期的–如所说,这是一种短期的解决方法,直到有时间找到真正的解决方案为止) 。如前所述,这是NetworkManager的工作,它提供了我们可以用于的CLI:
#查找要调整的界面 nmcli设备 #输出看起来像: #设备类型状态连接 #enp0s3以太网连接我的办公室 #lo loopback不受管- #从那开始,我们需要连接。 #现在添加我们的“搜索域”: nmcli连接修改my-office ipv4.dns-search example1.com nmcli con mod我的办公室+ ipv4.dns-search example2.com #和我们的名称服务器: nmcli con修改我的办公室ipv4.dns 213.73.91.35 nmcli con修改我的办公室+ ipv4.dns 87.118.100.175 #注意第二行中的“ +”:再添加一个, #而第一行覆盖现有条目。 #我们可以通过一个调用来做到这一点: nmcli con修改我的办公室ipv4.dns“ 213.73.91.35 87.118.100.175” #确定,现在让我们告诉它忽略来自DHCP服务器的更新: nmcli con修改我的办公室ipv4.ignore-auto-dns是 #并将修改应用于我们的运行配置 nmcli联络我的办公室
如果您使用静态IP地址,也可以使用kanelbolle的答案中的解决方案。
NetworkManager
(如第一行中所述)。每次引导时都会重新生成此文件NetworkManager
。如何访问this取决于您的linux发行版(您没有提到)NetworkManager
。