返回列表 发布新帖
查看: 25|回复: 0

【分享】DNS 故障快速排查脚本

发表于 3 天前 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 傲来云 于 2025-6-9 16:42 编辑

以下是一份适合站长或 Linux 运维使用的 “DNS 故障快速排查脚本”,可直接放在服务器上运行,用于诊断网站是否因 DNS 配置或解析异常导致无法访问。

脚本功能
检查域名是否能正常解析
检查解析 IP 是否为预期值
检查多个 DNS(本地、8.8.8.8、1.1.1.1)解析结果
检查 whois 域名状态(是否过期)
提示是否存在本地缓存异常

脚本内容(`dns-check.sh`)
  1. #!/bin/bash

  2. # 用法: ./dns-check.sh yourdomain.com
  3. DOMAIN="$1"

  4. if [[ -z "$DOMAIN" ]]; then
  5.   echo "用法: $0 yourdomain.com"
  6.   exit 1
  7. fi

  8. echo "正在检查域名:$DOMAIN"
  9. echo "------------------------------------"

  10. echo "本地 DNS 解析:"
  11. dig +short "$DOMAIN"

  12. echo -e "\nGoogle DNS (8.8.8.8) 解析:"
  13. dig +short "$DOMAIN" @8.8.8.8

  14. echo -e "\nCloudflare DNS (1.1.1.1) 解析:"
  15. dig +short "$DOMAIN" @1.1.1.1

  16. echo -e "\n查询域名状态(whois)..."
  17. whois "$DOMAIN" | grep -Ei "status|Expiry|Registrar|Name Server" | grep -v "https"

  18. echo -e "\n本地 DNS 设置:"
  19. if [[ -f /etc/resolv.conf ]]; then
  20.   cat /etc/resolv.conf | grep nameserver
  21. else
  22.   echo "/etc/resolv.conf 文件不存在"
  23. fi

  24. echo -e "\n检查完成。"
复制代码

使用方式
1. 保存为 `dns-check.sh`:
  1. nano dns-check.sh
复制代码
然后粘贴脚本内容。

2. 添加执行权限:
  1. chmod +x dns-check.sh
复制代码

3. 运行脚本:
  1. ./dns-check.sh yourdomain.com
复制代码

注意事项
需要安装 `dig`(在 `bind-utils` 或 `dnsutils` 包中)和 `whois`。
安装命令示例(CentOS):
  1. yum install bind-utils whois -y
复制代码
或 Ubuntu:
  1. apt install dnsutils whois -y
复制代码
结果中如多个公共 DNS 返回不一致 IP,说明可能存在 DNS 缓存未刷新或配置问题。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.074341 second(s), 7 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表