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

• 运营商出口问题

• 云安全组 / 防火墙问题

• 目标机器本身没响应

相关推荐
FreeBuf_4 小时前
苹果紧急发布iOS 15.8.7更新以防御“Coruna“漏洞利用工具包
macos·ios·cocoa
BIBABULALA5 小时前
语音算法面试复习系列1——语音信号处理基础(上)
macos·语音识别·xcode
TESmart碲视7 小时前
Mac+PC双系统如何共享双屏?KVM切换器选购的5个关键指标|TESmart用户真实体验复盘
macos·计算机外设·kvm切换器·tesmart·双屏kvm切换器·碲视
00后程序员张8 小时前
使用克魔助手(Keymob)查看 iOS 设备日志与崩溃报告
android·macos·ios·小程序·uni-app·cocoa·iphone
&黄昏的乐师8 小时前
VMware安装MAC虚拟机教程(安装过程记录)
macos
秃头摸鱼侠9 小时前
OpenClaw 入门到实战:安装、配置、使用、升级与卸载(Windows/macOS/Linux)
linux·windows·macos
liliangcsdn10 小时前
Mac环境OpenClaw龙虾的初步测试和验证
人工智能·macos
MonkeyKing_sunyuhua10 小时前
mac配置系统代理: http://127.0.0.1:7890
macos
NGBQ1213811 小时前
Camtasia 2026.0.7.dmg 全解析:Mac 端专业视频编辑工具深度指南
macos·音视频