我通过 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)。