[SOLVED]dial tcp: lookup api.cloudflare.com on 127.0.0.53:53: read udp 127.0.0.1:39199->127.0.0.53:53: i/o timeout

DNS指向了127.0.0.53

解决办法:

Ubuntu修改DNS

  • 永久修改dns
  • 临时修改dns

决定系统dns的文件是/etc/resolv.conf

1
2
ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Jun 3 15:49 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

这个文件是一个软链接,改了只能临时起作用,重启后会失效。

永久修改DNS

修改 /etc/systemd/resolved.conf 文件

1
sudo vim  /etc/systemd/resolved.conf

参数说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 指定 DNS 服务器,以空白分隔,支持 IPv4 或 IPv6 位置
DNS=8.8.8.8 114.114.115.115
# 备用 DNS 服务器
FallbackDNS=8.8.8.8
# 指定本地 DNS 域
Domains=domain.com
# 设置 链路本地多播名称解析(Link-Local Multicast Name Resolution) 是否激活,可用的选项有 yes、no、resolve
LLMNR=yes
# 设置 多播 DNS(Multicast DNS) 是否激活,可用的选项有 yes、no、resolve
MulticastDNS=yes
# 设置 DNS 安全扩展(DNS Security Extensions) 是否激活,可用的选项有 yes、no、allow-downgrade
DNSSEC=yes
# 设置 DNS 缓存 是否激活,可用的选项有 yes、no、no-negative
Cache=no-negative
# 设置 通过 TLS 的 DNS,可用的选项有 yes、no 、opportunistic
DNSOverTLS=opportunistic
# 设置 控制本地 DNS 监听器的行为,可用的选项有 yes、no 、udp
DNSStubListener=yes

完整示例:

1
2
3
4
5
6
7
8
9
10
[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1 1.0.0.1
Domains=example.com
LLMNR=yes
MulticastDNS=yes
DNSSEC=yes
DNSOverTLS=opportunistic
Cache=yes
DNSStubListener=yes

根据需要修改resolved.conf文件中的DNS,然后保存。

应用配置更改后,需要重新启动systemd-resolved服务以应用更改:

1
sudo systemctl restart systemd-resolved

要检查当前生效的配置,可以使用以下命令:

1
resolvectl status

临时修改DNS

如果我们临时使用的话,也可以临时修改DNS。

修改下面的文件:

1
vim /etc/resolv.conf

加入要修改的DNS

1
2
nameserver 8.8.8.8
nameserver 8.8.4.4

如果多个DNS,就一行一个,修改之后保存退出即可;此方法修改后即刻生效,但重启后失效。