Mac 上用 MTR 做链路测试很适合排查“ping 不通 / 偶发丢包 / 某一跳延迟高”的问题

MTR = ping + traceroute 的结合版,可以连续看每一跳的丢包和延迟。Homebrew 里的 mtr 在 macOS 上可直接安装,但通常需要用 sudo 运行。 

1)先安装 MTR

如果你 Mac 已安装 Homebrew:

bash 复制代码
brew install mtr

安装后先确认一下:

bash 复制代码
mtr --version

Homebrew 对 mtr 的说明里提到,通常需要 root 权限运行,所以后面命令一般写成 sudo mtr ...。 

2)最常用的测试命令

假设你的远程机器 IP 是 1.2.3.4。

方式一:交互式查看

bash 复制代码
sudo mtr 1.2.3.4

这会实时刷新,适合现场观察。

你会看到每一跳的主机、丢包率、最近/平均/最好/最差延迟。

退出按 q。

方式二:生成报告

这个更适合发给运维或云厂商:

bash 复制代码
sudo mtr -rwzc 100 1.2.3.4

参数含义:

• -r:报告模式,跑完后一次性输出

• -w:宽格式,主机名不容易被截断

• -z:显示 ASN/更完整信息时常用

• -c 100:发 100 次探测包

mtr 的手册里说明,-r 是报告模式,-w 是宽报告模式,-c 用来指定探测次数。 

3)如果 ping 不通,优先这样测

很多服务器会禁 ICMP,所以 ping 不通不一定代表机器真的不通。

这时建议分别测三种:

ICMP 测试

bash 复制代码
sudo mtr -rwzc 50 1.2.3.4

TCP 测试

假设你要测 SSH 22 端口:

bash 复制代码
sudo mtr --tcp --port 22 -rwzc 50 1.2.3.4

如果是 Web 服务:

sudo mtr --tcp --port 80 -rwzc 50 1.2.3.4

或者 HTTPS:

sudo mtr --tcp --port 443 -rwzc 50 1.2.3.4

UDP 测试

sudo mtr --udp --port 53 -rwzc 50 1.2.3.4

实际排障里,最有价值的是:

• 机器 ping 不通,但 tcp 22 能通:说明服务器大概率活着,只是禁了 ICMP

• 所有方式都卡在中间某几跳:可能是运营商链路、跨网出口或安全策略问题

• 只有到目标最后一跳超高丢包:重点看目标机器安全组、防火墙、服务监听

4)怎么看结果

重点看这几列:

• Loss%:丢包率

• Avg:平均延迟

• Best/Wrst:最好/最差延迟

• Last:最近一次延迟

判断方法:

情况 A:中间一跳丢包高,但后面都正常

一般不代表真正有问题。

很多中间路由器会"限速回复 ICMP",看起来像丢包,但它只是懒得回你探测包。

情况 B:从某一跳开始,后面所有跳都持续丢包

这通常才是真问题。

说明问题大概率出现在那一跳或它后面的链路上。

情况 C:前面都正常,最后一跳 100% 丢包

常见原因:

• 目标主机禁 ping

• 云服务器安全组拦截 ICMP

• 主机防火墙没放行

• 目标服务端口不通

情况 D:延迟在某一跳突然升高,后续一直高

通常说明从那一跳开始走了绕路,或者链路拥塞。

5)建议你直接执行的命令

把 x.x.x.x 换成你的远程机器 IP:

bash 复制代码
sudo mtr -rwzc 100 x.x.x.x
sudo mtr --tcp --port 22 -rwzc 100 x.x.x.x
sudo mtr --tcp --port 443 -rwzc 100 x.x.x.x

如果你是连一台 Linux 服务器,通常最关键的是:

bash 复制代码
sudo mtr --tcp --port 22 -rwzc 100 x.x.x.x

因为这更接近你真实访问 SSH 的路径。

6)如果 Mac 没装 Homebrew

先看有没有:

bash 复制代码
brew --version

没有的话先安装 Homebrew,再执行:

bash 复制代码
brew install mtr

7)补充:如果你只想快速确认路由路径

Mac 自带:

bash 复制代码
traceroute x.x.x.x

但它只能看路径,不像 MTR 那样能连续看丢包和延迟统计,所以排障还是 MTR 更好。

8)推荐你把结果发出来时这样整理

执行这条:

bash 复制代码
sudo mtr --tcp --port 22 -rwzc 100 x.x.x.x

把完整输出贴出来。

我可以直接帮你判断是:

• 你本地网络问题

• VPN 路由问题

• 运营商出口问题

• 云安全组 / 防火墙问题

• 目标机器本身没响应

相关推荐
zhensherlock20 小时前
Protocol Launcher 系列:Agenda 优雅组织你的想法与日程
javascript·macos·ios·typescript·node.js·mac·ipad
ipy2Tf8WP20 小时前
全程用 Claude Code 搓了一个 macOS 原生应用:SkillDeck
macos
eLIN TECE21 小时前
Mac安装Redis步骤
redis·macos·bootstrap
独隅1 天前
在 MacOS 上部署 Keras 模型的全面指南
人工智能·macos·keras
飞翔的SA2 天前
MLX‑VLM :Mac本地跑通多模态大模型的开源项目!让图片、音频、视频理解一键上手
人工智能·python·macos·音视频
sunfdf3 天前
移动硬盘上的文件消失了?以下是Mac电脑解决方法
macos·电脑
wonderomg3 天前
Mac安装openclaw步骤
macos·openclaw
whatzhang0073 天前
在 macOS 上从零配置 Vim:开启语法高亮 + 安装 vim-polyglot + 设置 gruvbox 主题
macos·vim·excel
徐健峰3 天前
Claude Code 安装完全指南(Mac 版):Git、环境变量、PATH 与常见报错一次讲清(2026)
git·macos·arcgis
AppOS3 天前
手把手教你 Openclaw 在 Mac 上本地化部署,保姆级教程!接入飞书打造私人 AI 助手
人工智能·macos·飞书