lin 发表于 2025-11-26 17:11:25

一键修改 Ubuntu DNS 教程(适用于 18.04 / 20.04 / 22.04 / 24.04)

在现代 Ubuntu 系统中(含桌面与服务器),DNS 通常由 systemd-resolved 管理。手动修改 DNS 有多种方式,但为了快速、稳定、自动化,我们可以通过 一键脚本 完成 DNS 设置。
本教程将介绍:

[*]DNS 修改原理(简单带过)
[*]一键修改 DNS 的脚本
[*]一键恢复默认 DNS 的脚本
[*]验证 DNS 是否生效
一、Ubuntu 的 DNS 管理方式简介
Ubuntu 18.04 之后默认使用 systemd-resolved,DNS 配置主要在:
/etc/systemd/resolved.conf而实际生效的 DNS 会写入:
/run/systemd/resolve/resolv.conf如果系统符号链接正常,/etc/resolv.conf 指向上述文件。
二、一键修改 DNS 脚本
以下脚本适用于 Ubuntu 18.04/20.04/22.04/24.04
支持常见 DNS(如 8.8.8.8、1.1.1.1、114.114.114.114 等)
创建脚本:change-dns.sh
#!/bin/bash
# 你要设置的 DNS,可自行修改
DNS1="8.8.8.8"
DNS2="1.1.1.1"
echo "正在配置 DNS..."
# 修改 resolved.conf
sudo bash -c "cat > /etc/systemd/resolved.conf" <<EOF

DNS=$DNS1 $DNS2
FallbackDNS=114.114.114.114
DNSStubListener=yes
EOF
# 重启服务
sudo systemctl restart systemd-resolved
# 确保 resolv.conf 是正确的链接
if [ ! -L /etc/resolv.conf ]; then
    sudo mv /etc/resolv.conf /etc/resolv.conf.bak
    sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
fi
echo "DNS 修改完成!当前 DNS:"
systemd-resolve --status | grep "DNS Servers" -A2使用方法
chmod +x change-dns.shsudo ./change-dns.sh脚本执行后 DNS 会立即生效。
三、一键恢复默认 DNS(还原系统自动获取)
创建 restore-dns.sh
#!/bin/bash
echo "正在恢复默认 DNS..."
sudo bash -c "cat > /etc/systemd/resolved.conf" <<EOF

# 恢复默认,不指定 DNS,让系统自动获取
EOF
sudo systemctl restart systemd-resolved
echo "DNS 已恢复为系统默认!"
systemd-resolve --status | grep "DNS Servers" -A2使用:
chmod +x restore-dns.shsudo ./restore-dns.sh四、如何验证 DNS 是否修改成功?
1. 查看系统 DNS 配置
systemd-resolve --status | grep "DNS Servers" -A22. 查看 /etc/resolv.conf
cat /etc/resolv.conf应看到你设置的 DNS 服务器。
3. 使用 dig 或 nslookup 测试
dig google.com或
nslookup baidu.com返回结果正常即可。
五、常用 DNS 推荐

名称地址
Google DNS8.8.8.8 / 8.8.4.4
Cloudflare1.1.1.1 / 1.0.0.1
阿里 DNS223.5.5.5 / 223.6.6.6
114 DNS114.114.114.114 / 114.114.115.115
六、总结
通过本文你能学到:

[*]Ubuntu DNS 的基本原理
[*]如何用脚本一键修改 DNS
[*]如何恢复默认 DNS
[*]如何验证 DNS 是否生效
脚本方式简单、安全、可重复使用,非常适合服务器环境。
页: [1]
查看完整版本: 一键修改 Ubuntu DNS 教程(适用于 18.04 / 20.04 / 22.04 / 24.04)