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 路由问题

• 运营商出口问题

• 云安全组 / 防火墙问题

• 目标机器本身没响应

相关推荐
寒水馨1 天前
macOS下载、安装openclaw-v2026.7.1(附安装包OpenClaw-2026.7.1.dmg)
macos·大模型·github·开源软件·ai助手·openclaw·gpt-5.6
白玉cfc1 天前
【iOS】MRC和ARC
macos·ios·cocoa
飞雪金灵1 天前
mac电脑 Maven下载安装和配置环境变量
macos·maven·maven下载安装·mac电脑环境
雨声不在1 天前
macos 12使用docker
macos·docker·容器
一叶龙洲1 天前
ubuntu26.04 xfce美化成mac
服务器·ubuntu·macos
李小白杂货铺2 天前
Oh My Zsh 简记
macos·macbook·zsh·主题·插件·oh my zsh·omz
fukai77222 天前
macOS防止休眠的菜单栏小工具
macos
web守墓人2 天前
【go语言】gotar:使用go语言复刻tar命令,并加入7z支持,可独立运行在windows、linux、macos上
linux·macos·golang
之歆3 天前
从 Mac 回到 Windows:用 PowerToys + AutoHotkey 找回熟悉手感
windows·macos
星辰即远方4 天前
字符串合法性检验
macos·ios·cocoa