|
这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 傲来云 于 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`:
然后粘贴脚本内容。
2. 添加执行权限:
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 缓存未刷新或配置问题。
|
|