检查 DNS 解析
resolvectl status
resolvectl status
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (ens27f0)
Current Scopes: none
Protocols: -DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 3 (ens27f1)
Current Scopes: none
Protocols: -DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
-
Global 配置正常(stub模式)
-
但是 Link 2 (ens27f0) 的 Current Scopes 为 none,说明 systemd-resolved 没有在这个接口上启用 DNS 解析
立即修复
1. 为接口设置 DNS
# 为 ens27f0 设置 DNS 服务器
sudo resolvectl dns ens27f0 114.114.114.114 223.5.5.5
# 设置 DNS 搜索域(可选)
sudo resolvectl domain ens27f0 ""
# 启用这个接口的 DNS 解析
sudo resolvectl default-route ens27f0 true
2. 验证设置是否生效
# 再次查看状态
resolvectl status
# 应该看到 Link 2 (ens27f0) 的 Current Scopes 变为 DNS
3. 测试网络连通性
# 先测试网关(根据之前的 ip route 输出)
ping -c 4 10.107.16.1
# 测试外网 IP
ping -c 4 8.8.8.8
# 测试域名解析
ping -c 4 www.baidu.com
持久化配置
如果临时修复有效,需要持久化配置:
sudo nano /etc/systemd/resolved.conf
Resolve
DNS=114.114.114.114 223.5.5.5
FallbackDNS=8.8.8.8 1.1.1.1
#Domains=~
DNSSEC=no
重启服务:
sudo systemctl restart systemd-resolved
方案二:
sudo nano /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
ens27f0:
dhcp4: no
addresses:
- 10.107.16.199/24
gateway4: 10.107.16.1
nameservers:
addresses: [114.114.114.114, 223.5.5.5]
ens27f1:
dhcp4: true
version: 2