系统学习 Windows 学习路径:从 CMD 到 PowerShell、系统网络,再到 WSL 与 Server

ping

用 ICMP 回显验证主机可达性和时延,定位丢包与 MTU 问题。

补充说明

ping 向目标发送 ICMP Echo Request,靠 Echo Reply 判断 IP 层是否可达,并给出每包往返时延和 TTL。Windows 默认只发 4 个包,-t 持续发送,-n 指定次数;它既能测 IPv4,也能测 IPv6,主机名会先经过 DNS 解析。

边界:ping 通只说明 ICMP 可达,不代表 TCP 端口或应用可用;ping 不通也不能直接断定主机宕机,Windows 防火墙默认拦截入站 ICMP 回显。测端口要用 Test-NetConnection(PowerShell)或 curl;测路径用 tracert,测逐跳丢包用 pathping。

Windows 10/11 的行为一致;Linux 的 ping 默认持续发送,Windows 默认 4 次后退出,这是跨平台脚本最常见的差异。-t 下按 Ctrl+Break 显示统计但继续发送,按 Ctrl+C 才停止。IPv4 与 IPv6 的响应可能完全不同,排障时要明确协议。

常用示例

# 1. 发 4 个默认包,快速判断名称解析和 IP 层连通性
C:\> ping example.com

# 2. 发 10 个包、每包等 1 秒,适合观察间歇性丢包
C:\> ping -n 10 -w 1000 192.168.1.1

# 3. 持续 ping;Ctrl+Break 看统计,Ctrl+C 结束
C:\> ping -t 8.8.8.8

# 4. 强制 IPv4 并反向解析地址,确认自己走的是哪条协议栈
C:\> ping -4 -a 8.8.8.8

# 5. 探测路径 MTU:1472 + 28 字节 IPv4 头 = 1500,不允许分片
C:\> ping -f -l 1472 192.168.1.1

# 6. 指定源地址,验证多网卡主机从哪块网卡发出
C:\> ping -S 192.168.1.10 example.com

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. Windows 的 ping 默认发几个包?如何持续发送,怎样只看统计不退出?
  2. ping 不通但浏览器能打开网站,可能是什么原因?该用什么命令验证端口?
  3. ping -f -l 1472 中的 1472 是怎么算出来的?出现“需要拆分”说明什么?
答案
  1. 默认 4 个;用 -t 持续发送,Ctrl+Break 显示统计且继续,Ctrl+C 停止。
  2. 目标或中间防火墙拦截 ICMP,不代表 TCP 服务不可用;用 Test-NetConnection host -Port 443 或 curl -I 验证。
  3. 1472 字节负载加 28 字节 IPv4 头正好 1500;出现提示说明路径 MTU 小于 1500,需要减小负载。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令