网络诊断工具
网络排障最怕“命令全会一点,但不知道先跑哪个”。更高效的方式是先判断问题大概落在哪一层:DNS、路由、端口、TLS、应用响应,接着再挑对应工具。
推荐排障顺序
- 先看本机网络是否正常
- 再看域名是否解析正确
- 再看路由和端口是否可达
- 最后再看 TLS、HTTP 响应和抓包细节
先按问题选工具
- 连不通:
ping、tracert、mtr - 域名异常:
nslookup、dig - 端口 / 服务不通:
Test-NetConnection、ss、netstat - HTTPS / 响应慢:
curl -vI、响应时间测试 - 要看底层流量:
tcpdump、Wireshark
基础命令
ping
ping example.com
ping -c 4 example.com # 发送 4 次
ping -t example.com # Windows 持续 ping
ping 适合先看基础连通性和延迟趋势,但目标主机禁 ICMP 时,ping 不通不代表网站一定不可用。
traceroute / tracert
# Linux/macOS
traceroute example.com
# Windows
tracert example.com
# 更好的替代:mtr
mtr example.com
mtr 比单纯的 traceroute 更适合持续观察丢包和波动。
nslookup / dig
# DNS 查询
nslookup example.com
nslookup -type=MX example.com
# dig(更详细)
dig example.com
dig example.com MX
dig @8.8.8.8 example.com # 指定 DNS 服务器
dig +short example.com # 简洁输出
DNS 问题最常见的不是“完全解析失败”,而是解析到错误 IP、旧记录或地区差异结果。
curl 诊断
# 查看响应时间
curl -o /dev/null -s -w "DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" https://example.com
# 查看 TLS 信息
curl -vI https://example.com 2>&1 | grep -E "SSL|subject|expire"
# 测试 HTTP/2
curl -I --http2 https://example.com
curl 非常适合判断“是网络问题,还是应用层响应问题”。
ss / netstat
# 查看监听端口
ss -tlnp
netstat -tlnp # 旧版
# 查看所有连接
ss -tanp
# 查看特定端口
ss -tlnp | grep :80
这组命令很适合本机服务启动后自检,尤其是 Nginx、Node、数据库和代理服务。
高级工具
tcpdump
# 抓取指定端口
tcpdump -i eth0 port 80
# 抓取指定主机
tcpdump -i eth0 host 1.2.3.4
# 保存到文件
tcpdump -i eth0 -w capture.pcap
# 只看 HTTP
tcpdump -i eth0 -A port 80 | grep -E "GET|POST|HTTP"
抓包前先缩小范围:主机、端口、协议尽量先限定,否则信息量会大到难以分析。
Wireshark
图形化抓包分析工具。
winget install WiresharkFoundation.Wireshark
常用过滤器:
http # HTTP 流量
tcp.port == 443 # HTTPS 端口
ip.addr == 1.2.3.4 # 指定 IP
dns # DNS 查询
tcp.flags.syn == 1 # SYN 包
http.request.method == "POST" # POST 请求
Wireshark 适合做“我知道有问题,但不知道到底在哪里”的深入分析。
nmap
端口扫描工具。
# 扫描常用端口
nmap example.com
# 扫描指定端口
nmap -p 80,443,8080 example.com
# 扫描所有端口
nmap -p- example.com
# 服务版本检测
nmap -sV example.com
# 操作系统检测
nmap -O example.com
nmap 更适合资产扫描和服务识别;面对自己不控制的目标时,要先确认使用边界和合规性。
在线工具
| 工具 | 说明 |
|---|---|
| ping.pe | 全球多节点 ping |
| DNS Checker | DNS 传播检查 |
| SSL Labs | SSL 证书检测 |
| PageSpeed | 网站性能分析 |
| ipinfo.io | IP 信息查询 |
| whatismyip.com | 查看公网 IP |
PowerShell 网络命令
# DNS 查询
Resolve-DnsName example.com
Resolve-DnsName example.com -Type MX
# 端口测试
Test-NetConnection example.com -Port 443
# 路由追踪
Test-NetConnection example.com -TraceRoute
# 查看网络配置
Get-NetIPAddress
Get-DnsClientServerAddress
常见排障路径
网站打不开
- 先
nslookup/dig - 再
curl -vI - 再
Test-NetConnection或tracert
域名刚改解析但还没生效
- 看权威 DNS 和公共 DNS 返回是否一致
- 用 DNS Checker 做多地区验证
服务器应用起来了,但外网访问不到
- 先看服务监听端口
- 再看防火墙 / 安全组
- 最后看域名和反向代理
常见问题
ping 通但网页打不开
这通常说明网络基础连通不一定有问题,故障更可能在端口、TLS、反向代理或应用服务本身。
DNS 看起来正常,但访问还是不对
可能是 CDN、缓存、SNI、证书或上游服务分流导致的,别只盯着 DNS 一项。