如何更改DNS服务器?

如何更改DNS服务器?

我通过 USB 线将手机上的互联网连接到我的电脑,所以我在我的/etc/resolv.conf:

# Generated by NetworkManager
nameserver 192.168.114.150

我想这192.168.114.150只是指向我的手机。如果 NM 覆盖此文件,我如何将其更改为我的首选 DNS 服务器?

答案1

您当然可以告诉 NetworkManager 不要编写 /etc/resolv.conf 并自己编写。

但是,通常 DNS 服务器取决于您所连接的网络,并且不是静态的。这就是为什么在 NetworkManager 中您需要将 DNS 设置配置为连接配置文件(即网络设置)的一部分。

例如,nmcli connection show列出您的所有个人资料。检查其中一项的详细信息nmcli connection show "$PROFILE"。请参见man nm-settings字段的含义。设置静态 DNS 服务器配置

  nmcli connection modify "$PROFILE" ipv4.dns 8.8.8.8 ipv4.ignore-auto-dns yes

然后使用 重新激活配置文件nmcli connection up "$PROFILE"

答案2

下面的方法是来自红帽文档,而且在 Debian 上也适用于我。对于使用 systemd 和 NetworkManager 的 Arch Linux,它的工作方式可能相同或相似。

以 root 用户身份,使用文本编辑器创建包含以下内容的 /etc/NetworkManager/conf.d/90-dns-none.conf 文件:

[main]
dns=none

重新加载 NetworkManager 服务:

# systemctl reload NetworkManager

笔记

重新加载服务后,NetworkManager 不再更新 /etc/resolv.conf 文件。但是,文件的最后内容将被保留。

或者,从 /etc/resolv.conf 中删除由 NetworkManager 生成的注释以避免混淆。

您现在可以编辑它/etc/resolv.conf,并且它不会被 NetworkManager 覆盖。

编辑:有人建议进行编辑,但我直接从文档页面引用,因此编辑该引用没有意义。我在这里留下他们的评论。

如果没有rc-manager=unamanaged,NM 会将 resolv.conf 重写为一个空白文件,盲目地遵循您的命令(dns=none;无 dns)。

相关内容