网络故障秒排指南:10 个实战命令从入门到精通
0 ihunter 2025/09


网络故障秒排指南:10 个实战命令从入门到精通

凌晨 3 点,服务器突然断连,监控告警疯狂刷屏 —— 每个 IT 运维都经历过这种绝望时刻。图形化工具此时往往掉链子,真正的排障高手都知道,命令行工具才是网络故障诊断的终极武器。本文精选 10 个最常用的网络命令,结合 Windows 和 Linux 双平台差异,用实战案例教你从 "网络不通" 快速定位到具体问题根源,从此告别抓瞎式排障。

一、基础诊断三板斧:连通性检测核心工具

ping 命令堪称网络诊断的 "听诊器",通过 ICMP 协议测试网络连通性的原理简单直接,但参数运用却暗藏玄机。Windows 和 Linux 系统下的 ping 命令参数差异较大,实战中需注意区分:

  • Windows 系统常用用法:

cmd

# 持续监测网关连通性(默认4个包,-t参数实现持续发送)
ping -t 192.168.1.1
# 大包测试MTU问题(-l指定数据包大小,单位字节)
ping -l 1500 www.baidu.com
# 不分段测试(-f参数,若提示拆分则需调整MTU)
ping -f -l 1500 www.baidu.com
  • Linux 系统常用用法:

bash

# 指定发送10个数据包(-c参数,默认持续发送)
ping -c 10 www.baidu.com
# 设定数据包大小(-s参数,单位字节)
ping -s 1024 www.baidu.com
# 不分段+指定大小测试MTU
ping -f -s 1472 www.baidu.com

通过返回的 TTL 值可粗略判断目标系统:Windows 通常返回 100-130,Linux/Unix 则在 240-255 之间,这对定位跨系统网络问题很有帮助。

tracert(Windows)与 traceroute(Linux) 是追踪路由路径的利器,但底层协议差异可能导致结果不同:Windows 的 tracert 基于 ICMP 协议,Linux 的 traceroute 默认用 UDP 协议(端口 33434),遇到防火墙拦截时需切换协议:

  • Windows 系统用法:

cmd

# 限制最大跳数为15(默认30跳,-h参数)
tracert -h 15 www.baidu.com
# 禁用域名解析加速(-d参数,避免DNS耗时)
tracert -d www.baidu.com
  • Linux 系统用法:

bash

# 切换为ICMP协议(-I参数,解决UDP被拦截问题)
traceroute -I www.baidu.com
# 限制最大跳数为15(-m参数,对应Windows的-h)
traceroute -m 15 www.baidu.com
# 指定端口测试(-p参数,针对特定服务路由)
traceroute -p 80 www.baidu.com

分析结果时需注意:某个节点超时不代表故障,可能是该节点禁用了 ICMP 响应,只要后续节点有响应,说明路径整体通畅。

IP 配置查询是排查本地网络设置的第一步,双平台命令功能相似但写法不同:

  • Windows 系统用法:

cmd

# 查看完整网络配置(MAC、DHCP、DNS全显示,/all参数)
ipconfig /all
# 释放DHCP分配的IP地址
ipconfig /release
# 重新获取DHCP地址
ipconfig /renew
# 清除DNS缓存(解决"网页打不开但QQ能上"问题)
ipconfig /flushdns
  • Linux 系统用法:

bash

# 查看IP及网卡信息(替代老式ifconfig)
ip addr
# 查看路由表(-n参数,显示IP而非域名)
route -n
# 释放DHCP地址(-r参数)
dhclient -r
# 重新获取DHCP地址并显示详细过程(-v参数)
dhclient -v ens33

二、连接深度剖析:端口与服务检测工具

当应用提示 "无法连接服务器" 时,netstat 命令是定位端口占用的核心工具,双平台参数组合略有差异,但核心功能一致:

  • Windows 系统用法:

cmd

# 查看所有连接+进程ID(-a全连接,-n数字显示,-o进程ID)
netstat -ano
# 筛选80端口占用情况(结合find命令)
netstat -ano | find "80"
# 查看进程对应的程序(需结合任务管理器,或用tasklist)
tasklist | find "1234"  # 1234为netstat查到的PID
  • Linux 系统用法:

bash

# 查看监听状态的TCP/UDP端口+进程(-t TCP,-u UDP,-l监听,-n数字,-p进程)
netstat -tulnp
# 筛选80端口占用(结合grep)
netstat -tulnp | grep 80
# 查看进程详情(替代tasklist,-p指定PID)
ps -ef | grep 1234

Linux 系统中,ss命令可替代 netstat,效率更高,参数用法基本兼容:ss -tulnp | grep 80。

端口连通性测试不能仅依赖 telnet(易被防火墙误导),netcat(nc)工具更可靠,支持 TCP/UDP 检测:

  • Windows/Linux 通用用法(需安装 nc,Windows 可下载 nmap 附带):

cmd

# 测试TCP端口连通性(-z扫描模式,-v详细输出)
nc -zv www.baidu.com 80
# 测试UDP端口(-u参数,针对DNS等UDP服务)
nc -zvu 8.8.8.8 53
  • HTTPS 端口专用测试(用 openssl 验证证书 + 连通性):

bash

# 测试443端口并显示SSL证书信息
openssl s_client -connect www.baidu.com:443

DNS 解析问题常伪装成 "网络故障",nslookup(Windows/Linux 通用)与 dig(Linux 专用) 是诊断利器:

  • nslookup 用法(双平台通用):

cmd

# 用默认DNS查询域名
nslookup www.baidu.com
# 指定谷歌DNS(8.8.8.8)查询,对比默认DNS结果
nslookup www.baidu.com 8.8.8.8
# 查询邮件服务器(MX记录)
nslookup -type=mx baidu.com
  • Linux dig 命令(功能更强大):

bash

# 追踪完整DNS解析链(+trace参数,看根域→顶级域→权威域)
dig +trace www.baidu.com
# 只显示解析结果(+short参数,简洁输出)
dig +short www.baidu.com
# 指定DNS服务器查询
dig @114.114.114.114 www.baidu.com

若解析结果异常,需检查本地 hosts 文件:Windows 路径C:\Windows\System32\drivers\etc\hosts,Linux 路径/etc/hosts,避免被篡改导致域名指向错误。

三、进阶排障工具箱:路由与流量分析工具

mtr 命令是 ping+traceroute 的加强版,适合持续监测网络质量,Linux 默认预装,Windows 需安装 WinMTR:

  • Linux mtr 用法:

bash

# 实时监测百度路由质量(显示丢包率、延迟变化)
mtr www.baidu.com
# 运行10次后退出(-c参数,生成统计报告)
mtr -c 10 www.baidu.com
# 禁用域名解析(-n参数,加速显示)
mtr -n www.baidu.com

通过 "Loss%" 列可快速定位丢包节点:若中间节点丢包但后续节点正常,通常是该节点做了流量限制(非故障);若终点丢包,则需检查目标服务器或最后一跳网络。

tcpdump 命令(Linux 专用)是命令行抓包神器,复杂故障排查必备,需 root 权限:

bash

# 抓取eth0网卡的所有流量(-i指定网卡)
tcpdump -i eth0
# 只抓HTTP流量(port 80,针对网页服务)
tcpdump -i eth0 port 80
# 抓取特定IP的数据包(host参数,定位单台主机问题)
tcpdump -i eth0 host 192.168.1.100
# 抓取TCP协议+指定端口,保存为pcap文件(供Wireshark分析)
tcpdump -i eth0 tcp port 443 -w capture.pcap
# 抓取DNS流量(UDP 53端口,分析解析过程)
tcpdump -i eth0 udp port 53 -v


Windows 系统可替代工具:windump(tcpdump Windows 版)或直接用 Wireshark 图形化抓包。

路由表分析解决复杂网络访问问题(如多宽带出口、跨网段访问):

  • 查看路由表:

cmd

# Windows查看路由表
route print
  • bash

# Linux查看路由表(-n参数,IP数字显示)
route -n
  • 添加静态路由(永久生效需加参数):

cmd

# Windows添加静态路由(-p参数永久生效,重启不丢失)
route add 10.0.0.0 mask 255.255.255.0 192.168.1.1 -p
# 删除静态路由
route delete 10.0.0.0
  • bash

# Linux添加静态路由(临时生效,重启丢失)
route add -net 10.0.0.0/24 gw 192.168.1.1
# Linux永久添加静态路由(写入/etc/rc.local)
echo "route add -net 10.0.0.0/24 gw 192.168.1.1" >> /etc/rc.local
  • ARP 欺骗排查(检测 IP 与 MAC 绑定异常):

cmd

# Windows查看ARP缓存
arp -a
# Windows绑定IP与MAC(防止ARP欺骗)
arp -s 192.168.1.1 00-11-22-33-44-55
  • bash

# Linux查看ARP缓存
arp -n
# Linux绑定IP与MAC(写入/etc/arp.conf永久生效)
arp -s 192.168.1.1 00:11:22:33:44:55

四、实战排障流程:从现象到本质的诊断思路

当用户报告 "无法访问网站" 时,按以下流程逐步定位,效率提升 10 倍:

  1. 链路连通性检测:先测内网再测外网,排除基础链路问题

cmd

# 1. 测试网关连通性(内网是否通)
ping 192.168.1.1
# 2. 测试公共DNS(外网是否通,8.8.8.8为谷歌DNS)
ping 8.8.8.8
  1. 路由路径追踪:定位故障节点位置(内网 / 运营商 / 目标服务器)

cmd

# Windows追踪百度路由
tracert -d www.baidu.com

bash

# Linux追踪百度路由(ICMP协议避免拦截)
traceroute -I www.baidu.com
  1. 端口与服务检测:确认目标服务是否正常开放

bash

# 测试百度80端口(HTTP)
nc -zv www.baidu.com 80
# 测试百度443端口(HTTPS)
nc -zv www.baidu.com 443
  1. DNS 解析验证:排查域名解析是否异常

cmd

# 用默认DNS和公共DNS分别查询,对比结果
nslookup www.baidu.com
nslookup www.baidu.com 114.114.114.114
# 清除DNS缓存(若解析异常)
ipconfig /flushdns  # Windows
systemctl restart nscd  # Linux(或restart NetworkManager)
  1. 流量深度分析:持续丢包 / 卡顿问题,抓包找根源

bash

# 抓取目标网站流量,保存为pcap供后续分析
tcpdump -i eth0 host www.baidu.com -w baidu_traffic.pcap

五、效率提升技巧:命令组合与实用脚本

将常用命令组合成脚本,避免重复输入,适合批量排查或定期监测:

  • Linux 批量扫描内网存活主机(替代 Ping Sweep):

bash

# 扫描192.168.1.0/24网段存活主机,输出IP+主机名
for i in {1..254}; do ping -c 1 -w 1 192.168.1.$i > /dev/null && echo "192.168.1.$i is up" && nslookup 192.168.1.$i | grep name; done
  • Windows 批量检查端口连通性:

cmd

# 批量测试192.168.1.1-10的80端口,输出结果到文件
for /l %i in (1,1,10) do (nc -zv 192.168.1.%i 80 >> port_test.log 2>&1)
  • 网络质量定期监测(Linux 定时任务):

bash

# 每小时执行一次mtr测试,结果保存到日志(添加到crontab)
0 * * * * /usr/bin/mtr -c 20 www.baidu.com >> /var/log/mtr_monitor.log 2>&1


六、总结:排障核心口诀

记住以下口诀,快速调用命令:

  • ping 命令:"持续 t(Windows)/c(Linux)、大小 l(Windows)/s(Linux)、不分段 f"

  • netstat 命令:"a 全连接、n 数字显、o(Windows)/p(Linux)进程看"

  • traceroute 命令:"协议 I(Linux)、跳数 m(Linux)/h(Windows)、端口 p"

网络故障诊断的核心不是记命令,而是建立 "现象→工具→结论" 的逻辑链:看到 "网页打不开" 先想 DNS,看到 "连接超时" 先测端口,看到 "间歇性断连" 先查路由。掌握这些工具和思路,你也能成为同事眼中的 "排障大神"!

收藏 有帮助 没帮助

上篇: 运维必备:掌握这3个存储技术
下篇: 没有了

相关主题
 IT博客索引
 AI软件索引
 猜你喜欢
热门
焦点
视点
头条