有没有办法在命令行上更改系统使用的 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>
我希望这有帮助。