ping 是一个网络诊断工具,用于测试本地计算机与另一台主机(或 IP 地址)之间的网络连接,它通过发送 ICMP 回显请求消息并等待回显应答来工作。

(图片来源网络,侵删)
基本语法
ping 命令的基本语法如下:
ping [-t] [-a] [-n count] [-l size] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p] [-4] [-6] target_name
看起来很复杂,别担心,我们只讲解最常用和最重要的参数。
常用核心参数详解
以下是按功能分类的常用参数,并附有示例和说明。
基础测试参数
| 参数 | 全称 | 说明 | 示例 |
|---|---|---|---|
-n count |
--count |
指定要发送的回显请求数量,默认值为 4。 | ping -n 10 8.8.8.8 (向 Google DNS 发送 10 个数据包) |
-l size |
--size |
指定发送回显请求的数据包大小(以字节为单位),默认为 32 字节,最大为 65500。 | ping -l 1472 192.168.1.1 (发送 1472 字节的数据包) |
-w timeout |
--timeout |
指定等待每个回显应答的超时时间(以毫秒为单位),默认为 4000 毫秒(4秒)。 | ping -w 1000 192.168.1.1 (等待响应时间缩短到 1 秒) |
示例:

(图片来源网络,侵删)
# 向百度服务器发送 5 个 100 字节的数据包,超时时间设为 2 秒 ping -n 5 -l 100 -w 2000 www.baidu.com
持续测试与控制参数
| 参数 | 全称 | 说明 | 示例 |
|---|---|---|---|
-t |
--continuous |
持续不断地向目标主机发送回显请求,直到用户手动按下 Ctrl + C 才停止。 |
ping -t 192.168.1.1 (持续 ping 网关,观察网络稳定性) |
-a |
--resolve |
对目标 IP 地址进行反向名称解析,如果解析成功,会显示主机名。 | ping -a 8.8.8.8 (显示 8.8.8 对应的主机名,如 dns.google) |
示例:
# 持续 ping 网关,并显示其主机名 ping -a -t 192.168.1.1
高级诊断参数
| 参数 | 全称 | 说明 | 示例 |
|---|---|---|---|
-f |
--dont-fragment |
设置“不分片”标志,如果数据包大小超过了路径上的 MTU(最大传输单元),路由器将不会对其进行分片,而是直接丢弃,并返回一个“需要分片但设置了 DF 标志”的 ICMP 错误消息,这可用于发现网络路径上的 MTU 大小。 | ping -f -l 1500 192.168.1.1 (发送一个不分片的大数据包) |
-i ttl |
--ttl |
设置“生存时间”(Time To Live),指定数据包在被路由器丢弃前可以经过的最大路由器数,默认值根据 Windows 版本不同,通常是 128 或 64,可用于追踪路由或诊断环路问题。 | ping -i 1 192.168.1.1 (TTL 设为 1,通常只能到达下一跳设备) |
-4 |
--ipv4 |
强制使用 IPv4 进行 ping,在同时配置了 IPv4 和 IPv6 的系统上非常有用。 | ping -4 8.8.8.8 (确保使用 IPv4 协议) |
-6 |
--ipv6 |
强制使用 IPv6 进行 ping。 | ping -6 2001:4860:4860::8888 (ping Google 的 IPv6 地址) |
示例:
# 使用不分片模式测试,看哪个路由器开始丢包 ping -f -l 1472 192.168.1.1 # 强制使用 IPv6 协议 ping ping -6 2404:6800:4004:808::200e
实际应用场景举例
场景1:检查网络基本连通性
这是最常见的用法,默认即可。
ping www.baidu.com
输出解读:
Pinging www.a.shifen.com [182.61.200.7] with 32 bytes of data::解析出的 IP 地址。Reply from 182.61.200.7: bytes=32 time=15ms TTL=118:收到响应,32字节,耗时15毫秒,TTL为118。Request timed out.:请求超时,未收到响应。Ping statistics for 182.61.200.7::统计结果,包括发送、接收、丢失的数据包数量,以及往返时间的最小、最大和平均值。
场景2:持续监控网络稳定性
当你感觉网络时断时续时,可以使用 -t 参数。
ping -t 192.168.1.1
观察返回的 time=xxms 值是否稳定,如果时间忽高忽低或频繁出现 Request timed out.,说明网络不稳定。
场景3:测试最大数据包大小(MTU 探测)
如果你想找到通往某个目标(如游戏服务器)的最佳 MTU,可以使用 -f 参数逐步增大 -l 的值。
# 从 1472 开始(因为 IP 头 20字节,ICMP 头 8字节,1472+20+8=1500,标准的以太网MTU) ping -f -l 1472 target_ip # 如果出现 "Packet needs to be fragmented but DF set." 错误,说明 1472 太大了 # 然后尝试 1400, 1300... 逐步减小,直到找到能成功发送的最大值 ping -f -l 1400 target_ip
场景4:区分 IPv4 和 IPv6
如果你的电脑同时支持两种协议,而你想测试特定的版本。
# 强制使用 IPv4 ping -4 8.8.8.8 # 强制使用 IPv6 (需要目标支持 IPv6) ping -6 2404:6800:4004:808::200e
所有可用参数列表(Windows 10/11)
以下是 ping /? 命令显示的完整参数列表,供您参考。
用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i ttl] [-v tos]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
[-4] [-6] target_name
选项:
-t Ping 指定的主机,直到停止。
可以按 Ctrl+C 停止。
-a 将地址解析为主机名。
-n count 要发送的回显请求数,默认值为 4。
-l size 发送缓冲区大小,默认为 32 字节。
-f 在数据包中设置“不分段”标志(仅适用于 IPv4)。
-i ttl 生存时间,默认值是主机的默认 TTL 值。
-v tos 服务类型(仅适用于 IPv4,该设置已弃用,对 IP 标头中的 TOS 位没有影响)。
-r count 记录计数跃点的路由(仅适用于 IPv4)。
-s count 计数跃点的时间戳(仅适用于 IPv4)。
-j host-list 与主机列表一起使用的松散源路由(仅适用于 IPv4)。
-k host-list 与主机列表一起使用的严格源路由(仅适用于 IPv4)。
-w timeout 等待每次回复的超时时间(毫秒)。
-R 同样使用路由标头测试反向路由(仅适用于 IPv6)。
-S srcaddr 要使用的源地址。
-c compartment 路由隔离舱标识符。
-p Ping Hyper-V 网络虚拟化提供程序地址。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
希望这份详细的指南能帮助您更好地使用 Windows 的 ping 命令进行网络诊断!
