为什么需要对照表
同一个排障动作在 Windows 与 Linux 上的命令名和参数格式完全不同:查接口地址、看路由表、测连通性、查 DNS、找端口、看防火墙、抓包,每一类都有两套写法。真正要练的是先把「动作」想清楚,再取出对应命令;只背命令名,换个系统就会卡住。本表按动作组织,Linux 侧统一给 iproute2 与 iputils 的现代工具,Windows 侧同时给出 CMD 与 PowerShell 两种写法,方便老系统和较新系统都能落地。
Linux 侧工具演进
Linux 排障工具近年完成了一轮换代:net-tools 系的 ifconfig、netstat、route、arp 早已停更,主流发行版默认不再安装,取而代之的是 iproute2 的 ip addr / ip route / ip neigh,以及 ss。语义没有变化,但输出格式与参数都不同。写巡检脚本时按新工具写,遇到仍在使用老命令的存量环境再补一层兼容判断,比反过来省事得多。
动作命令对照
| 动作 | Windows | Linux | 看什么 |
|---|---|---|---|
| 接口与地址 | ipconfig /all | ip -br a | 地址、掩码、网关、DNS 是否齐全 |
| 路由表 | route print -4 / Get-NetRoute | ip route | 默认路由指向哪个网关 |
| 连通测试 | ping -t / Test-Connection | ping -c | 丢包率与往返时延 |
| 路径追踪 | tracert / pathping | traceroute / mtr | 在第几跳开始异常 |
| DNS 查询 | nslookup / Resolve-DnsName | dig / host | 返回的地址与来源服务器 |
| DNS 缓存 | ipconfig /flushdns | resolvectl flush-caches | 刷新后结果是否变化 |
| 端口与连接 | netstat -ano / Get-NetTCPConnection | ss -tanp | 监听状态与进程归属 |
| 端口连通测试 | Test-NetConnection -Port | nc -zv | TCP 握手是否成功 |
| 邻居表 | arp -a / Get-NetNeighbor | ip neigh | MAC 解析状态是否正常 |
| 防火墙 | netsh advfirewall / Get-NetFirewallRule | iptables / nft / firewalld | 放行方向与端口是否一致 |
| 抓包 | pktmon / netsh trace | tcpdump / tshark | 双向报文是否真的到达 |
| 网卡统计 | Get-NetAdapterStatistics | ip -s link / ethtool -S | 错误与丢包计数的增量 |
按场景选命令
- 用户报「网页打不开」:先用 Resolve-DnsName 或 dig 确认解析结果,再用 Test-NetConnection 或 nc 测 443 端口,两步就能把问题分到 DNS 侧还是连通侧
- 怀疑本机路由异常:Windows 看 route print -4,Linux 看 ip route,重点核对默认路由的网关地址是否与管理网规划一致
- 怀疑 DNS 缓存陈旧:Windows 执行 ipconfig /flushdns,Linux 执行 resolvectl flush-caches,刷新后立即复测并把结果与权威记录比对
- 怀疑服务没监听:两侧都要能读出 PID 并翻译成进程名与路径,确认是自己部署的服务还是系统托管进程
- 需要交给厂商或留证:Windows 用 pktmon 导出 pcap,Linux 用 tcpdump 抓同样的过滤条件,格式统一便于同一次分析
Windows 快速打点
Windows 快速打点
ipconfig /all # 全部网卡地址、网关、DNS
route print -4 # IPv4 路由表
test-connection 8.8.8.8 # 基础连通性
Test-NetConnection 10.0.0.5 -Port 443 # 带端口探测,替代 telnet
Resolve-DnsName www.example.com -Server 8.8.8.8 # 指定服务器查询
Get-NetAdapterStatistics # 网卡收发与错误计数Linux 快速打点
Linux 快速打点
ip -br a # 接口与地址一览
ip route # 路由表
ping -c3 10.0.0.5 # 三层连通
traceroute -n 10.0.0.5 # 逐跳路径
dig +short example.com @8.8.8.8 # DNS 解析
ss -tulnp # 监听端口与进程
ip -s link # 接口错误与丢包Windows 10/11 与 Server 2019+ 自带 curl.exe 与 Test-NetConnection,不必再装第三方工具;Linux 侧 netstat 属于已退役的 net-tools,新系统常常没装,优先用 ss 与 ip 系列。
两侧的 ping 参数含义不同:Windows 的 -t 表示持续发送直到中断,Linux 的 -t 用于设置 TTL。看别人给的命令时先确认平台,照抄参数最容易得出错误结论。