遇到网络问题时的第一反应是什么?老实说,大多数人可能跟我一样,会先重启路由器试试(笑)。但作为一名IT老鸟,我更习惯先来几个命令行诊断工具,毕竟精准定位问题比盲人摸象靠谱多了。下面这些命令就像医生的听诊器,对网络健康检查特别管用。
基础网络连通性测试三板斧
ping
命令绝对是网络诊断的敲门砖,简单输入ping 目标IP
就能看到丢包率和延迟。有次我们机房服务器突然失联,就是用ping先发现到核心交换机的延时异常高,最后揪出了被老鼠咬坏的光纤。而traceroute
(Linux)或tracert
(Windows)则像个路径追踪器,能显示数据包经过的每一跳,特别适合排查跨国网络卡在哪个运营商节点的问题。
端口与连接诊断利器
当应用无法访问时,telnet IP端口号
能快速测试端口开放状态。不过现在更推荐用nc -zv IP 端口
,因为很多系统默认不装telnet了。netstat -tulnp
这个命令我每天要用十几次,它能列出所有监听的TCP/UDP端口及对应进程,上周刚帮同事发现了个被挖矿程序占用的异常端口。新版Linux系统可以改用ss -tulnp
,速度更快且输出更直观。
高级网络分析技巧
遇到诡异的数据包丢失时,mtr
命令结合了ping和traceroute的功能,能持续监测路由质量。有次AWS东京到新加坡区的跨国专线断续,就是用mtr抓包发现新加坡POP节点有30%丢包。而对于DNS解析问题,dig +trace 域名
可以完整显示DNS解析链条,比nslookup详细得多。记得有次CDN异常,就是用dig发现某级DNS返回了错误的CNAME记录。
容易被忽视的实用命令
arp -a
查看本地ARP缓存表,排查IP冲突时特别有用;iftop
实时监控带宽占用,找出哪个IP在疯狂拖慢网络;tcpdump -i eth0 port 80
抓取特定端口的原始数据包,虽然输出像天书,但配合Wireshark分析能发现很多协议层问题。上个月财务系统异常,就是通过tcpdump发现有人用HTTP明文传输密码,吓得我们连夜上了HTTPS。
说实话,这些命令就像老中医的银针包,看起来朴素但用好了真能妙手回春。你们平时排查网络问题时最爱用哪个命令?欢迎在评论区分享你的独门秘技!(突然想到,要是把这些命令做成快捷键是不是能省下一半的咖啡钱?)
评论