常用网络诊断命令
日常工作中,排查网络问题最常用的命令非 ping 莫属。比如办公室突然上不了网页,第一反应就是打开终端敲一句:
ping www.baidu.com
如果返回超时,说明连通性有问题;如果有延迟波动大,可能是网络拥堵或线路质量差。
查看本机网络配置信息
想快速知道自己的 IP 地址、子网掩码和网关?ipconfig(Windows)和 ifconfig(Linux/macOS)就能搞定。
在 Windows 上执行:
ipconfig /all
可以看到所有网卡的详细配置,包括 DHCP 是否启用、DNS 服务器地址等。而在 Linux 系统中常用:
ifconfig -a
或者更现代的方式:
ip addr show
路由追踪与路径分析
当你发现访问某个网站特别慢,但其他网站正常,可能是中间节点出了问题。这时候 tracert(Windows)或 traceroute(Linux)就派上用场了。
例如跟踪数据包到腾讯官网的路径:
tracert www.qq.com
每一步的响应时间都会显示出来,如果某跳突然延迟飙升,基本可以锁定问题出在那个节点所在的运营商段。
DNS 查询相关命令
网页打不开,有时不是网络断了,而是域名解析失败。nslookup 和 dig 是两个强大的 DNS 排查工具。
使用 nslookup 查询百度的 A 记录:
nslookup baidu.com
它会返回对应的 IP 地址。而 dig 更适合技术人员,输出信息更全:
dig baidu.com +short
这个命令只显示结果 IP,适合写脚本时使用。
端口与连接状态检测
服务部署后别人访问不了?先看看端口有没有正确监听。netstat 命令能列出当前所有网络连接和监听端口。
netstat -an | grep 80
这条命令检查 80 端口是否处于 LISTEN 状态。现在许多新系统推荐使用 ss 替代 netstat,效率更高:
ss -tuln | grep 443
查看 HTTPS 服务是否已启动。
测试远程主机端口连通性
telnet 不仅能当远程登录工具,还能测端口通不通。比如要确认数据库服务器的 3306 端口是否开放:
telnet 192.168.1.100 3306
如果提示“连接被拒绝”或超时,说明防火墙可能挡住了。现在很多人用 nc(netcat)代替 telnet,功能更强:
nc -zv 192.168.1.100 3306
抓包分析基础命令
遇到复杂问题,比如接口调用失败却找不到原因,就得靠抓包。tcpdump 是命令行下的抓包利器。
比如监听 eth0 网卡上的 HTTP 请求:
tcpdump -i eth0 port 80 -n -c 10
参数说明:-i 指定网卡,-n 不解析主机名,-c 限制抓取数量为 10 个包。保存成文件进一步分析可以用:
tcpdump -i eth0 port 443 -w ssl_traffic.pcap
然后用 Wireshark 打开 pcap 文件深入查看。
批量自动化小技巧
运维经常要对多台服务器执行相同命令。比如需要同时查看五台机器的公网出口 IP,可以结合 ssh 和 curl 写个小循环:
for ip in 192.168.1.{101,102,103,104,105}; do\n echo -n "$ip: ";\n ssh admin@$ip 'curl -s ifconfig.me';\ndone
这种写法省去了逐台登录的时间,特别适合做初步巡检。