我已经连接到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 上应该仍然可用,如果不是,则尝试使用resolvectl
revert 命令。您将需要要重置的链接的接口名称。前任:
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
似乎是执行此操作的方法。