分层模型:DNS → IP 连通性 → TCP 端口连通 → 路由 → 网卡 → 内核 / 防火墙
DNS 域名解析问题(域名无法转 IP) # nslookup 作用:域名解析查询工具,老版本 DNS 排查工具,用来查域名对应的 IP。 nslookup www.baidu.com Server: 223.5.5.5 # 当前使用的DNS服务器 Address: 223.5.5.5#53 # DNS服务器IP和端口53(DNS默认端口) Non-authoritative answer: # 非权威应答:这个结果是DNS缓存返回,不是baidu官方域名服务器直接返回 Name: baidu.com Address: 124.237.177.164 ...共4个IPv4地址 ✅ 结论:DNS 解析正常,拿到 4 个百度 A 记录。 # dig信息更详细,推荐 DNS 排查工具,信息最全 ; <<>> DiG 9.18.33 <<>> baidu.com ;; global options: +cmd # 全局选项 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32253 # status: NOERROR 重点!表示DNS查询成功,无错误 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 # qr=查询应答 rd=递归查询 ra=服务器支持递归 # QUERY=1个查询;ANSWER=返回4条解析结果 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 # EDNS扩展,UDP报文大小 ;; QUESTION SECTION: ;baidu.com. IN A # 查询问题:baidu.com 的A记录(IPv4) ;; ANSWER SECTION: # 【核心】应答段,解析结果 baidu.com. 348 IN A 111.63.65.247 # 348 = TTL 生存时间,单位秒:这条记录还能在DNS缓存保留348秒 ;; Query time: 6 msec # 查询耗时6毫秒 ;; SERVER: 223.5.5.5#53(223.5.5.5) (UDP) # 使用的DNS ;; WHEN: Sat Sep 19 11:27:30 CST 2026 # 查询时间 ;; MSG SIZE rcvd: 102 # 收到报文大小 # 直接用hosthost 工具:轻量 DNS 查询,输出简洁,除 A 记录外还会自动查 MX 邮件记录。 host www.baidu.com baidu.com has address 124.237.177.164 baidu.com has address 111.63.65.247 baidu.com has address 111.63.65.103 baidu.com has address 110.242.74.102 baidu.com mail is handled by 10 mx.maillb.baidu.com. baidu.com mail is handled by 20 mx.baidu.com.解析失败:检查/etc/resolv.confDNS 服务器配置;检查/etc/hosts是否被劫持
测试:直接用 IP 访问网页,能通就是 DNS 问题
ping + mtr 测试 IP 连通、丢包 # ping目标IP ping shturl.cc/Tafq3 # mtr 实时路由丢包(组合ping+traceroute,最推荐) mtr shturl.cc/Tafq3 ping 只能看通不通;mtr 可以看到中间哪一跳丢包nc /curl 测试 TCP 端口连通(业务端口) # nc 测试端口是否开放 nc -zv shturl.cc/Tafq3 80 nc -zv shturl.cc/Tafq3 443 # curl 测试端口/HTTP服务 curl -v shturl.cc/Tafq3:80 ping 通 ≠ 端口通!很多服务器禁 ping,必须用 nc/curl 测业务端口traceroute 追踪路由,定位断点 # traceroute(默认UDP) traceroute shturl.cc/Tafq3 # TCP模式traceroute(绕过UDP屏蔽) traceroute -T -p 80 shturl.cc/Tafq3本机网卡、IP、网关配置查看 # 查看网卡和IP地址 ip a # 查看路由表(默认网关) ip route 旧命令:`ifconfig`、`route -n`(很多新系统已经弃用)防火墙 & 云安全组检查 # CentOS/RHEL firewalld systemctl status firewalld # 查看防火墙规则 firewall-cmd --list-all # Ubuntu/Debian ufw ufw status # iptables 通用 iptables -L -n 云服务器额外:去云控制台检查**安全组**,放行入 / 出端口。ss 查看端口监听、连接状态 + 内核网络日志 # ss 查看监听端口(替代 netstat,性能更好) ss -tulnp # 查看TCP连接状态 ss -ant # 查看内核网络日志 dmesg | grep -i network dmesg | grep -i tcp- 先测试 DNS 解析,确认域名能否解析成正确 IP
- ping 目标 IP,确认 IP 层连通;用 mtr 检查是否丢包
- nc/curl 测试TCP 端口连通性(业务端口)
- traceroute 追踪路由,定位断点
- 检查本机网卡、IP、网关配置
ip a、ip route - 检查本机防火墙、云服务器安全组策略
- ss 查看端口监听与连接状态,查看内核网络日志
## 1. DNS解析测试 # 推荐dig,信息最全 dig domain.com # nslookup nslookup domain.com # host host domain.com ## 2. IP连通性 & 丢包检测 ping 目标IP # mtr(ping+traceroute组合,排查链路丢包首选) mtr 目标IP/域名 ## 3. TCP业务端口连通测试 # nc 端口探测 nc -zv 域名/IP 端口号 # curl 带详细过程,适合http业务 curl -v 域名/IP:端口 ## 4. 路由追踪,定位断点 # 默认UDP traceroute 域名/IP # TCP模式,很多环境UDP被屏蔽,优先用这个 traceroute -T -p 目标端口 域名/IP ## 5. 本机网卡、IP、网关配置 ip a # 查看网卡、IP地址 ip route # 查看路由表、默认网关 ## 6. 防火墙策略检查 # CentOS firewalld systemctl status firewalld firewall-cmd --list-all # Ubuntu ufw ufw status # iptables通用查看规则 iptables -L -n > 云服务器:控制台检查【安全组】出入端口放行 ## 7. 端口监听、连接状态 & 内核网络日志 ss -tulnp # 查看本机监听端口(替代netstat) ss -ant # 查看所有TCP连接状态 dmesg | grep -i tcp # 内核TCP日志 dmesg | grep -i network # 内核网络相关日志dig baidu.com
349 cat /etc/resolv.conf
350 cat /etc/hosts
351 ping baidu.com
352 mtr baidu.com
355 mtr baidu.com
356 curl -v baidu.com
357 traceroute baidu.com
358 ip a
359 ip route
ss-tlnp
firewall-cmd --pormant -add-port=80/tcp
ping