系统学习 macOS 学习路径:从 BSD 文件命令到系统、网络与开发维护

ping

用 ICMP 回显测试 macOS 到目标主机的连通性和往返延迟。

补充说明

ping 是最基础的连通性测试:-c 限定次数,-n 只输出数字地址,-t 设置整体超时,-W 设置每个包的等待时间。macOS 的 -W 单位是毫秒,Linux 常见实现是秒;macOS 也没有 Linux 的 -w 总时限,跨平台脚本不要直接复制参数。IPv6 用独立的 ping6,而不是 Linux 的 ping -6。

ping 通只能说明 ICMP 到达,不能证明业务端口可用;很多云主机和防火墙默认丢弃 ICMP,表现为 100% 丢包但 HTTPS 正常。反过来,能 ping 通也不代表 DNS、TLS 或应用层正常,需要配合 curl、nc 或 tcpdump。用 -D(Don't Fragment)加大包可以探测路径 MTU,1472 字节负载加 28 字节头部正好是 1500。

持续 ping 会一直占用终端,脚本里务必加 -c 和 -t。-i 可以小于 1 秒,但低于 0.002 秒需要 root;-f 泛洪只允许 root,且会给网络带来明显压力,生产环境不要用。

常用示例

# 基本连通性和延迟,发 4 个包后退出
% ping -c 4 example.com

# 不做 DNS 反解,排障时输出更干净
% ping -c 4 -n 1.1.1.1

# 每个包最多等 1 秒,整体最多 5 秒
% ping -c 3 -W 1000 -t 5 192.0.2.1

# 大包且不分片,验证路径 MTU 是否为 1500
% ping -c 3 -s 1472 -D example.com

# IPv6 回环和远端
% ping6 -c 3 ::1
% ping6 -c 3 2606:4700:4700::1111

# 快速间隔,0.2 秒一个包
% ping -c 20 -i 0.2 192.0.2.1

# 只要汇总,不要每个包的逐行输出
% ping -c 100 -q example.com

# 收到第一个回复就退出
% ping -o -c 1 example.com

易错点与排错

相关命令

参考链接

读完自测

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

  1. macOS 的 -W 和 -t 分别是什么单位?
  2. 能打开网页但 ping 全部超时,最可能是什么原因?
  3. 怎样用 ping 验证路径 MTU 是否为 1500?
答案
  1. -W 是每个包等待回复的毫秒数,-t 是整个 ping 进程的超时秒数。
  2. 目标或中间防火墙过滤了 ICMP;用 TCP 工具(如 nc -vz host 443、curl -I)验证业务端口。
  3. 用 ping -c 3 -s 1472 -D host:1472 字节负载加 20 字节 IP 头和 8 字节 ICMP 头为 1500,成功说明路径 MTU 至少 1500。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令