【分享】DNS 故障快速排查脚本
本帖最后由 傲来云 于 2025-6-9 16:42 编辑以下是一份适合站长或 Linux 运维使用的 “DNS 故障快速排查脚本”,可直接放在服务器上运行,用于诊断网站是否因 DNS 配置或解析异常导致无法访问。
脚本功能
检查域名是否能正常解析
检查解析 IP 是否为预期值
检查多个 DNS(本地、8.8.8.8、1.1.1.1)解析结果
检查 whois 域名状态(是否过期)
提示是否存在本地缓存异常
脚本内容(`dns-check.sh`)#!/bin/bash
# 用法: ./dns-check.sh yourdomain.com
DOMAIN="$1"
if [[ -z "$DOMAIN" ]]; then
echo "用法: $0 yourdomain.com"
exit 1
fi
echo "正在检查域名:$DOMAIN"
echo "------------------------------------"
echo "本地 DNS 解析:"
dig +short "$DOMAIN"
echo -e "\nGoogle DNS (8.8.8.8) 解析:"
dig +short "$DOMAIN" @8.8.8.8
echo -e "\nCloudflare DNS (1.1.1.1) 解析:"
dig +short "$DOMAIN" @1.1.1.1
echo -e "\n查询域名状态(whois)..."
whois "$DOMAIN" | grep -Ei "status|Expiry|Registrar|Name Server" | grep -v "https"
echo -e "\n本地 DNS 设置:"
if [[ -f /etc/resolv.conf ]]; then
cat /etc/resolv.conf | grep nameserver
else
echo "/etc/resolv.conf 文件不存在"
fi
echo -e "\n检查完成。"
使用方式
1. 保存为 `dns-check.sh`:
nano dns-check.sh然后粘贴脚本内容。
2. 添加执行权限:
chmod +x dns-check.sh
3. 运行脚本:
./dns-check.sh yourdomain.com
注意事项
需要安装 `dig`(在 `bind-utils` 或 `dnsutils` 包中)和 `whois`。
安装命令示例(CentOS):
yum install bind-utils whois -y或 Ubuntu:
apt install dnsutils whois -y结果中如多个公共 DNS 返回不一致 IP,说明可能存在 DNS 缓存未刷新或配置问题。
页:
[1]