ping 基于 ICMP 协议,发送 ICMP Echo 请求报文,接收方回复 ICMP Echo 应答,用来检测网络连通性、延迟、丢包。
⚠️ 注意:部分防火墙会拦截 ICMP,ping 不通≠业务端口不通,只是 ICMP 报文被丢弃。
Windows(CMD/PowerShell)
基础用法
cmd
ping 目标IP/域名
ping www.baidu.com
ping 192.168.1.1
Windows 默认发送 4 个数据包,自动停止。
常用参数
示例:持续 ping 网关
cmd
ping -t 192.168.1.1
Linux(Ubuntu、Debian、openEuler、CentOS、银河麒麟等)
Linux 默认无限持续发包,按 Ctrl + C 停止。
基础用法
bash
ping www.baidu.com
ping 8.8.8.8
常用参数
示例:发 5 个包就结束
bash
ping -c 5 114.114.114.114
root 可以用
-f洪水 ping,压力测试,谨慎使用,会产生大量流量。
macOS
macOS ping 参数和 Linux 几乎完全一致,同样默认无限 ping,Ctrl+C停止。
bash
# 发送4个包退出
ping -c 4 www.baidu.com
# 设置包大小
ping -s 1200 192.168.1.1
WSL2 (Windows Subsystem for Linux)
WSL 内部是 Linux 环境,使用Linux 版本 ping,参数和原生 Linux 一致。
注意:WSL2 ping Windows 主机 IP,需要注意 Windows 防火墙放行 ICMP,否则会丢包。
bash
ping -c 3 192.168.1.100
重要差异对照表
常见输出字段解读
plaintext
来自 14.215.177.38 的回复: 字节=32 时间=22ms TTL=56
字节:数据包大小时间:往返延迟 RTT,毫秒,越小网络越好TTL:生存时间,每经过一台路由器 TTL 减 1,可以粗略判断经过多少跳。
排坑提醒
能 ping 通,不代表端口能访问:ping 用 ICMP;web/ssh 是 TCP/UDP,需要用 telnet /nc/curl 测试端口。
很多云服务器、防火墙会禁止 ICMP 应答,ping 返回请求超时,但业务正常。
Windows PowerShell 完全兼容 CMD 的 ping 参数。
IPv6 ping:
Windows:
ping -6 ipv6.google.comLinux/macOS:
ping6 ipv6.google.com
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
原文链接
欢迎访问 小易撩挨踢