诊断工具
ping、traceroute、curl、netstat/ss。
35 分钟
诊断工具
网络排障靠 分层工具链:先 ping 测 IP 可达,再 curl 测端口与 HTTP,用 ss 看谁在监听。Linux 服务器上这些命令是日常技能(linux-commands)。
学习目标
- 掌握 ping、traceroute、curl、ss 的基本用法
- 区分「网络不通」与「端口不通」与「HTTP 错误」
- 能对照 DNS 工具(dig)做全链路检查
核心内容
工具对照
| 工具 | 测什么 | 典型场景 |
|---|---|---|
ping | ICMP 可达、RTT | 服务器是否在线 |
traceroute / mtr | 路径跳数 | 哪一跳丢包 |
curl | TCP + HTTP/TLS | API 是否正常 |
ss / netstat | 本地监听与连接 | 8080 是否在听 |
dig | DNS 解析 | 域名是否指对 IP |
DNS 专课见 dns-tools。
分层诊断示例
# 1. DNS
dig +short coderoadmap.cn A
# 2. IP 层
ping -c 4 coderoadmap.cn
# 3. 端口 + HTTP(公网入口)
curl -I --connect-timeout 5 https://coderoadmap.cn/
# 4. 本机 upstream(SSH 到服务器后)
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:3000/
curl -s http://127.0.0.1:8080/actuator/health
# 5. 监听状态
ss -tlnp | grep -E '443|3000|8080|3306'
curl 常用参数
curl -v https://coderoadmap.cn/api/tracks # _verbose:握手与头
curl -o /dev/null -w "total: %{time_total}s\n" -s https://coderoadmap.cn/
curl -H "Accept: application/json" http://127.0.0.1:8080/api/tracks
HTTP 头语义见 http-headers。
读 ss 输出
LISTEN 0 128 127.0.0.1:8080 0.0.0.0:* users:(("java",pid=1234))
127.0.0.1:8080 = 仅本机可连;0.0.0.0:8080 = 所有网卡暴露,需立即整改。
练习
- 对 coderoadmap.cn 跑 dig → ping → curl 三步
- 在服务器上用 ss 确认 Nginx :443 与 Java :8080 监听地址
- 用 curl 对比公网 HTTPS 与本机 HTTP 耗时