如何在命令行上更改 DNS 服务器?

如何在命令行上更改 DNS 服务器?

有没有办法在命令行上更改系统使用的 DNS 服务器?

有人说下面的方法可行,

nmcli con mod <connectionName> ipv4.dns "8.8.8.8 8.8.4.4"

但这样做之后,dig仍然说它正在使用本地 DNS:

;; ANSWER SECTION:
google.com.             150     IN      A       172.217.2.174

;; Query time: 14 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)

这可能吗?

答案1

最重要的是,您需要修改 /etc/resolve.conf 文件中的相应名称服务器行来更改活动名称服务器。根据您特定的发行版和配置,这可能是也可能不是永久的 - 通常不是因为网络管理器或安装脚本覆盖了它。

最简单的方法是使用文本编辑器(vi、pick 或其他)。根据它包含的内容以及要用什么来替换它,您可以编写脚本或命令来执行此操作。

如果您想要特定的操作系统说明,您需要告知发行版以及可能的其他具体信息。

答案2

  • nmcli找到了 答案https://askubuntu.com/a/922011/843820
    几乎完美了,只差最后一步,“那么你应该禁用“dnsmasq””一,我现在无法在我的 Ubuntu 18.04 下跟踪。一旦解决了这个问题,它就是使用命令更改 DNS 服务器的完美答案。

  • 此外,还有其他选择,例如使用resolvconf或甚至dnsmasq直接使用,解决方案是https://unix.stackexchange.com/a/323498

答案3

您使用的语法是正确的,但是由于您使用的是 NetworkManager nmcli,因此为了应用此语法,您必须关闭并重新建立连接。如下所示:

nmcli con down <conname>; nmcli con up <conname>

我希望这有帮助。

相关内容