[网络] [DNS] Linux DNS 配置指南

DeepSeek修订(2025年10月30日00:11:24)

DNS 配置指南

方法1:直接编辑 resolv.conf 文件

1. 解除软链接

在 Ubuntu 等现代 Linux 系统中,/etc/resolv.conf 通常是一个由系统自动管理的软链接,指向其他位置(如 /run/systemd/resolve/stub-resolv.conf)。
这个软链接会在系统重启或网络服务重启时被自动重新生成,导致手动修改的内容丢失。

# 检查是否为软链接
ls -la /etc/resolv.conf

# 如果是软链接,解除链接
sudo unlink /etc/resolv.conf

2. 停止 systemd-resolved 服务

# 停止服务避免干扰
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved

3. 编辑 resolv.conf 文件

# 编辑 DNS 配置文件
sudo vim /etc/resolv.conf

写入内容:

# 全局 DNS 配置
nameserver 8.8.8.8
nameserver 114.114.114.114
# 优化解析参数
options timeout:2 attempts:2 rotate

4. 测试 DNS 配置

# 测试 DNS 解析
curl -v www.baidu.com
curl -v www.google.com

# 使用 dig 命令验证
dig google.com | grep "SERVER"

方法2:使用 systemd-resolved 服务(功能丰富)

1. 配置 resolv.conf 指向本地服务

# 备份原文件(如有需要)
sudo cp /etc/resolv.conf /etc/resolv.conf.backup

# 配置指向 systemd-resolved
sudo tee /etc/resolv.conf > /dev/null << EOF
# 使用 systemd-resolved 本地 DNS 解析服务
nameserver 127.0.0.53
options edns0
EOF

2. 编辑 systemd-resolved 主配置

sudo vim /etc/systemd/resolved.conf

写入内容:

[Resolve]
# 设置全局 DNS 服务器
DNS=114.114.114.114 8.8.8.8
# 设置备用 DNS 服务器
FallbackDNS=1.1.1.1 208.67.222.222
# 设置 DNS-over-TLS
DNSOverTLS=no
# 设置 DNSSEC 验证
DNSSEC=allow-downgrade
# 启用 DNS 缓存
Cache=yes

3. 配置网络接口 DNS(可选)

# 查看可用网络接口
ip addr show
# 或使用
resolvectl status

# 为特定接口设置 DNS(替换 eth0 为实际接口名)
sudo resolvectl dns eth0 114.114.114.114 8.8.8.8
sudo resolvectl dnsovertls eth0 no

# 或者设置全局 DNS(对所有接口生效)
sudo resolvectl dns Global 114.114.114.114 8.8.8.8

4. 处理 NetworkManager 冲突(如有需要)

# 配置 NetworkManager 不管理 DNS
sudo vim /etc/NetworkManager/NetworkManager.conf

添加内容:

[main]
dns=none

5. 重启并启用服务

# 启用并重启服务
sudo systemctl enable systemd-resolved
sudo systemctl restart systemd-resolved

6. 验证配置

# 检查服务状态
systemctl status systemd-resolved

# 查看详细 DNS 配置
resolvectl status

# 测试 DNS 解析
dig google.com
nslookup baidu.com

# 验证 resolv.conf 配置
cat /etc/resolv.conf

配置说明

方法对比

特性 方法1(直接配置) 方法2(systemd-resolved)
复杂度 简单 中等
功能 基础解析 缓存、DNSSEC、多接口
稳定性 中等
适用场景 简单环境、临时配置 生产环境、需要高级功能

DNS 服务器推荐

  • 主用114.114.114.114(国内速度快)
  • 备用8.8.8.8(Google DNS,稳定性好)
  • 第二备用1.1.1.1(Cloudflare,隐私保护)

故障排查

# 检查 DNS 解析问题
nslookup 域名
dig 域名 +trace
systemd-resolve --status
posted on 2025-10-09 17:50  风惊庭前叶  阅读(26)  评论(0)    收藏  举报