sudo bash -c '
echo -e "\n🚀 开始执行【终极美化版 DNS 永久优化】\n"
第一步:暴力写入应急 DNS,先把网络抢回来
echo -e "📡 [1/6] 正在写入应急公共 DNS(114+阿里),马上就能联网了……"
cat > /etc/resolv.conf << "EOF"
nameserver 114.114.114.114
nameserver 223.5.5.5
nameserver 8.8.8.8
EOF
chattr +i /etc/resolv.conf 2>/dev/null || true
等几秒让网络活过来
sleep 3
echo -e "✅ 网络已抢救成功!\n"
第二步:修复软件源并安装 systemd-resolved
echo -e "📦 [2/6] 正在修复 apt 并安装 systemd-resolved……"
export DEBIAN_FRONTEND=noninteractive
apt-get clean >/dev/null 2>&1
apt update --fix-missing -qq >/dev/null 2>&1
apt install -y systemd-resolved libnss-resolve >/dev/null 2>&1 ||
apt install -y --reinstall systemd-resolved >/dev/null 2>&1
第三步:写入最优公共 DNS 配置
echo -e "⚙️ [3/6] 写入最强公共 DNS(阿里 + 腾讯 + 114 + 百度)"
cat > /etc/systemd/resolved.conf << "EOF"
[Resolve]
DNS=223.5.5.5 119.29.29.29 114.114.114.114 180.76.76.76
FallbackDNS=8.8.8.8 1.1.1.1
Domains=~.
DNSSEC=no
DNSOverTLS=no
MulticastDNS=no
LLMNR=no
Cache=yes
EOF
第四步:启用 stub 模式
echo -e "🔧 [4/6] 启用标准 stub-resolv.conf 模式"
mkdir -p /run/systemd/resolve
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf 2>/dev/null ||
cp -f /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf 2>/dev/null
第五步:重启服务
echo -e "🔄 [5/6] 正在重启 systemd-resolved 服务……"
systemctl enable --now systemd-resolved >/dev/null 2>&1
第六步:最终验证,只有全部成功才执行永久锁死
echo -e "✅ [6/6] 正在进行最终解析验证……\n"
sleep 2
if dig +short baidu.com @127.0.0.53 | grep -q "[0-9]"; then
echo -e "🎉 解析测试完美通过!\n"
echo -e "🔒 正在执行【永久锁死】,以后云厂商一辈子也改不回去了……"
chattr -i /etc/resolv.conf 2>/dev/null || true
echo "nameserver 127.0.0.53" > /etc/resolv.conf
chattr +i /etc/resolv.conf 2>/dev/null && echo -e "🔥 永久锁死成功!这台服务器已成仙,DNS 永不坏!\n"
else
echo -e "⚠️ 解析测试失败,已保留可修改状态,方便你排查(不会锁死)\n"
fi
echo -e "当前 DNS 状态:"
resolvectl status 2>/dev/null | grep -A 2 "Current DNS" || cat /etc/resolv.conf
echo -e "\n再次测试解析 baidu.com:"
dig +short baidu.com | head -5
echo -e "\n🎊 全部完成!你的服务器现在用的是最干净最快的公共 DNS,而且重启 10000 次都不会坏!\n"
'
评论 (0)