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

• 运营商出口问题

• 云安全组 / 防火墙问题

• 目标机器本身没响应

相关推荐
大熊猫侯佩15 小时前
macOS27 上可变界面尺寸 iOS App 揭秘
macos·ios·swiftui
tangzzzfan15 小时前
把 ADB 装进 macOS app
macos
黑化旺仔8 天前
【OC】KVO
macos·ios·objective-c·cocoa
Liekkas Kono8 天前
macOS 27 安装 VMware Fusion 和 Win11 经验
macos·win11·vmware
shark-chili10 天前
关于AI辅助编程的认知
数据库·人工智能·redis·macos·缓存
zwd200510 天前
Mac 上写英文遇到不会的词,有哪些工具?输入法、翻译软件、写作助手怎么选
人工智能·macos·效率工具·英语写作·输入法·deepl·翻译工具
33三 三like10 天前
Jx-Mac 本地部署过程总结
macos
大象AI共学11 天前
想在手机上读 Obsidian?Mac → iPhone / 安卓的零成本方案
macos·智能手机·iphone
sysinside12 天前
如何创建可引导的 macOS Golden Gate 27 安装介质
macos
Dr.Buho12 天前
macOS 27 升级教程:兼容机型、三种安装方法与降级提示
经验分享·macos