排查网络问题,别再靠猜了
每次公司系统突然上不去,第一反应是不是刷网页、重启路由器?其实很多问题用几个简单的网络命令就能定位。尤其当你需要判断是本地网络故障还是服务端不可达时,外网访问测试是最直接的手段。
常用的网络命令工具集
Windows 和 macOS 都自带命令行工具,不用装额外软件。打开终端或 CMD,这几个命令基本够用:
- ping:测试能否连通某个外网地址
- tracert(Windows)/traceroute(macOS):查看数据包经过哪些节点
- telnet 或 nc:测试特定端口是否开放
- nslookup:检查域名解析是否正常
实际场景:测试 API 接口连通性
比如你们用的第三方支付接口地址是 api.payhost.com:443,但前端报错“无法连接”。先别急着找开发,自己跑一遍测试:
ping api.payhost.com
如果没回应,可能是网络不通或对方禁了 ICMP。接着查路由:
tracert api.payhost.com
看到卡在某一层节点,大概率是中间网络问题。再测端口:
telnet api.payhost.com 443
或者用 nc(macOS 常用):
nc -zv api.payhost.com 443
如果连接失败,说明防火墙或目标服务有问题。
用表格记录测试结果,清晰又省事
一个人测一次没问题,但要是每天早晚各测一次,或者多人协作排查,光靠记忆肯定乱套。这时候拿个表格记下来最靠谱。
可以建个简单的 Excel 或在线表格,列几栏:
| 测试时间 | 目标地址 | Ping 延迟 | Traceroute 跳数 | 端口连通 | 备注 |
|---|---|---|---|---|---|
| 2024-03-15 09:00 | api.payhost.com | 48ms | 12 | 是 | 正常 |
| 2024-03-15 14:00 | api.payhost.com | 超时 | 中途断开 | 否 | 运营商线路波动 |
时间一长,规律就出来了。比如发现每天下午两点延迟飙升,可能就是内部网络高峰,和外部服务没关系。
自动化小技巧
想更省力,可以用批处理脚本定期执行命令,把结果追加写入日志文件,再手动复制到表格里。比如 Windows 的 .bat 文件:
@echo off
date /t >> network_log.txt
time /t >> network_log.txt
ping api.payhost.com -n 4 >> network_log.txt
echo ============ >> network_log.txt
设置个定时任务,每天运行几次,出问题时直接翻记录,比啥都强。
别让网络问题拖进度
掌握这些命令不是为了显得专业,而是少走弯路。以前同事老等运维反馈,现在他自己几分钟跑完测试,问题到底出在哪心里有数,沟通也更有底气。配合表格记录,团队共享信息也方便,不用反复问“刚才有没有试过?”