用途
dns-network 是一套用于诊断 DNS、连通性和延迟问题的实用工作流集合。当用户提到 dns、dig、nslookup、traceroute、ping 等关键词时,可借助本技能快速定位网络故障。
主要能力
DNS 查询
- dig(首选工具):支持查询 A、AAAA、MX、CNAME、TXT、NS、SOA 等记录类型;使用
+short获取简洁输出;通过@8.8.8.8指定 DNS 服务器;+trace追踪完整解析路径;-x进行反向查询;-f从文件批量查询。 - nslookup:基础查询,可指定服务器和记录类型。
- host:快速简单的查询与反向查询。
DNS 传播检查
通过循环查询多个公共解析器(8.8.8.8、1.1.1.1、208.67.222.222、9.9.9.9)判断记录是否已传播;也可直接查询权威名称服务器确认源记录是否正确。
连通性测试
- ping:检测丢包率和往返时间变化,区分持续高延迟与间歇性丢包。
- traceroute / tracepath:逐跳显示路径,定位延迟突增的节点;星号表示该跳过滤探测,不一定是问题。
- mtr:结合 ping 与 traceroute,交互式实时更新,报告模式可输出每跳的丢包率和平均延迟,是诊断路径级问题的最佳单一工具。
curl 计时分解
用于诊断“网站慢”的投诉,输出 DNS 查询、TCP 连接、TLS 握手、首字节和总耗时。根据各阶段耗时判断瓶颈:DNS 慢、网络路径慢、TLS 协商慢、服务器响应慢或传输慢。
端口测试
- netcat (nc):检查端口是否开放,支持端口范围扫描、超时设置和 UDP 测试。
- ss / netstat / lsof:查看本机监听端口及对应进程。
tcpdump 基础
支持按接口、主机、端口、协议过滤抓包,保存为 pcap 文件供 Wireshark 分析,限制抓包数量,以及查看 ASCII 内容。macOS 上需使用 en0 或 en1。
本地配置文件
- /etc/hosts:静态主机名到 IP 的映射,优先于 DNS 查询,可用于临时覆盖测试。
- /etc/resolv.conf:DNS 解析器配置;systemd-resolved 系统需用
resolvectl status查看,macOS 用scutil --dns。
使用方式
本技能以命令行工作流形式提供,用户可直接复制命令执行。针对典型问题提供诊断流程:
- “网站慢”:运行 curl 计时分解,按阶段定位瓶颈。
- “无法连接服务”:依次检查域名解析、IP 可达性、端口开放、本地监听、防火墙和路由。
- “DNS 不解析”:检查解析器配置,直接查询解析器,对比公共解析器,使用
+trace检查域名记录,排查 /etc/hosts 覆盖。 - “本机可用服务器不可用”:对比两端的 DNS 结果和路由,检查出站防火墙、代理设置和解析器差异。
适用场景
适用于开发、运维和网络排障人员诊断 DNS 解析异常、网络连通性故障、延迟问题、端口可达性以及 HTTP 请求性能瓶颈。
限制
部分命令需要 sudo 权限(如 tcpdump)。不同操作系统命令参数存在差异(如 ping 超时参数、网络接口名称)。资料未提供图形界面或自动化脚本,所有操作均需手动执行命令。