从 systemd-resolved 中删除 DNS 服务器?

从 systemd-resolved 中删除 DNS 服务器?

我已经连接到openconnect类似 VPN 的东西,并且它在我的 中添加了一个 DNS 服务器(和 DNS 域)systemd-resolved,但它们不起作用,因此使用互联网的速度变慢,因为每个新请求都必须等待超时损坏的 DNS 服务器,在开始工作之前,最初配置的 DNS 服务器(我假设)。

我怎么能够消除该 DNS 服务器来自systemd-resolved

$ systemd-resolve --status
Global
         DNS Servers: 10.127.201.221
                      10.63.101.221
                      172.25.2.253
          DNS Domain: blah1.example
                      example.com
          DNSSEC NTA: 10.in-addr.arpa
          ...

Ubuntu Linux 18.04。系统 v237

答案1

我同意伊恩·D·艾伦 (Ian D. Allen) 的评论:

1-resolvctl revert 命令不会从全局部分中删除 DNS

2- 无法明显恢复接口 tun0 实际上已关闭

所以问题仍然悬而未决

问候,泽维尔

答案2

系统 < v239

您之后的命令应该是:

systemd-resolve --interface=tun0 --revert

tun0删除 DNS 设置的界面在哪里:

--revert
       Revert the per-interface DNS configuration. This option must be combined with
       --interface= to indicate the network interface the DNS configuration shall be reverted
       on. If the DNS configuration is reverted all per-interface DNS setting are reset to
       their defaults, undoing all effects of --set-dns=, --set-domain=, --set-llmnr=,
       --set-mdns=, --set-dnssec=, --set-nta=. Note that when a network interface disappears
       all configuration is lost automatically, an explicit reverting is not necessary in
       that case.

看起来这些工具在 systemd v239 中发生了变化(实际上是在我的仿生测试机上)。

系统 >= v239

上述命令在较新版本的 systemd 上应该仍然可用,如果不是,则尝试使用resolvectlrevert 命令。您将需要要重置的链接的接口名称。前任:

sudo resolvectl revert tun0

resolvectl手册:

恢复链接

恢复每个接口的 DNS 配置。如果恢复 DNS 配置,则所有每个接口的 DNS 设置都会重置为默认值,从而撤消 dns、domain、llmnr、mdns、dnssec、dnsovertls、nta 的所有影响。请注意,当网络接口消失时,所有配置都会自动丢失,在这种情况下不需要显式恢复。

由于 systemd-resolved 将 DNS 服务器与网络接口相关联,因此这应该会删除它从该接口获知的 DNS 服务器。

Systemd 解析的注释

systemd-resolved该手册条目中也提到了这种行为,相关摘录:

其他多标签名称将路由到配置了 DNS 服务器的所有本地接口,以及全局配置的 DNS 服务器(如果有)。

我相信您想告诉 systemd-resolved 忘记隧道接口的 DNS 服务器,这resolvectl revert似乎是执行此操作的方法。

相关内容