sdb*_*bbs 7 server command-line networking dns 20.04
我在云中使用“虚拟专用服务器”,其中安装了 Ubuntu 20.04。
我注意到,有时,当我重新启动服务器时,我无法 ping 通任何内容:
$ ping yahoo.com
ping: yahoo.com: Temporary failure in name resolution
$ resolvectl query yahoo.com
yahoo.com: resolve call failed: No appropriate name servers or networks for name found
Run Code Online (Sandbox Code Playgroud)
据我了解,由于这是 Ubuntu 20.04,/etc/resolv.conf不再真正使用,并且systemd取代了 DNS 的处理。
但是,无论如何,我不想手动指定 DNS 服务器(就像将 Google 的 8.8.8.8 放入 中的老把戏一样/etc/resolv.conf) - 显然,大多数时候 DNS 工作:当服务器启动时,它以某种方式“获得” DNS 服务器。所以,我想重复这个过程,但我不知道如何重复。
(以此类推,如果我想刷新/获取一台机器的新 IP 地址,我知道该机器应该向 DHCP 服务器请求该地址 - 所以最终,很容易查找,为了做到这一点,我sudo dhclient -r eth0例如应该这样做)
另请注意,当 DNS 名称解析不起作用时,我不会DNS Servers在此输出中列出:
$ systemd-resolve --status
Global
LLMNR setting: no
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 2 (eth0)
Current Scopes: none
DefaultRoute setting: no
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Run Code Online (Sandbox Code Playgroud)
我发现要清除 DNS 缓存,他们(https://unihost.com/help/how-to-clear-the-dns-cache/)建议:
sudo /etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)
...但是,我不想运行这个命令,因为我通过连接到服务器ssh,所以我想整个网络的重新启动也会终止我的ssh终端会话,并可能产生其他意想不到的后果。
所以,我想知道:是否有一个命令可以在ssh会话中运行,该命令可以刷新或获取该计算机的新 DNS 服务器 - 使用启动时使用的类似机制(当 DNS 实际在此计算机上运行时)?
sdb*_*bbs 12
好吧,我刚刚发现https://unix.stackexchange.com/questions/328131/how-to-troubleshoot-dns-with-systemd-resolved其中注释:
...有时重新启动
sudo systemctl restart systemd-resolved是一个好主意。
所以,我确实尝试了这个命令:
sudo systemctl restart systemd-resolved
Run Code Online (Sandbox Code Playgroud)
...事实上,出现在(或,似乎显示相同的报告)DNS Servers的输出中systemd-resolve --statusresolvectl status
其他可能性:
在 Ubuntu 20.04 上,
systemd-resolved包含一个本地 DNS 服务器,充当systemd存根解析器,它应该自动/etc/resolv.conf使用正确的配置进行编辑。...
此文件包含来自 DHCP 租约的 DNS 服务器,但请注意,您不会从存根解析器缓存功能中受益。
啊,如果 DNS 服务器是从 DHCP 租约获得的 - 那么也有可能sudo dhclient -r eth0起作用。
终于,我敢跑了:
$ sudo /etc/init.d/networking restart
Restarting networking (via systemctl): networking.service.
Run Code Online (Sandbox Code Playgroud)
...事实证明,这并没有破坏我的ssh会话,所以这也很好。
| 归档时间: |
|
| 查看次数: |
31531 次 |
| 最近记录: |