MTU 与 MSS 计算器
算出一个 MTU 能留下多少 MSS,并计入 IPv6、隧道与 TCP 选项。
MTU 与 MSS 计算器完全在你的浏览器中运行:它只做算术,不发送任何数据包,输入内容也不会离开本机。
打开 CIDR 子网计算器
关于 MTU 与 MSS 计算器
MSS 是链路 MTU 扣掉各层头部之后剩下的部分:IPv4 占 20 字节、IPv6 占 40 字节,TCP 再占 20 字节,启用时间戳还要再加 12 字节,此外还有隧道包在外面的部分。算错时很少干净利落地失败:需要分片的包在相应 ICMP 被过滤时会直接消失,连接不是建立不起来,而是在传输途中卡住。这个计算器处理常见封装的算术,并把一次 ping 测试变成实测的路径 MTU。
功能特性
- IPv4 与 IPv6 由 MTU 算 MSS,并列出头部明细
- PPPoE、GRE、IPsec、WireGuard、OpenVPN、VXLAN 与 L2TP 预设
- TCP 时间戳选项单独计入
- 反向模式:由已知 MSS 推出 MTU
- 由能通过的最大 ping 包推算路径 MTU
- 给出 Linux、macOS 与 Windows 的 ping 命令
如何使用 MTU 与 MSS 计算器
- 填入链路的 MTU:以太网为 1500,PPPoE 之后为 1492
- 选择 IP 版本与流量经过的隧道
- 读取需要钳制的 MSS 与头部明细
- 不确定时用 ping 模式实测路径 MTU
示例
输入
MTU 1500 · IPv4 · WireGuard tunnel (60 bytes)
输出
Effective MTU 1440 · MSS 1400
Clamp MSS to 1400 on the tunnel interface
每一层封装都直接从有效载荷中扣除,这正是隧道需要 MSS 钳制的原因。
常见错误与故障排除
- 小请求正常,大文件上传卡住。 — 典型的 MTU 黑洞:路径上有设备丢弃大包却不回 ICMP。请把 MSS 钳制到这里给出的数值。
- 抓包里的 MSS 少了 12 字节。 — 启用了 TCP 时间戳,其选项字节要从每个分段中扣除。在这里也把该选项打开即可对上。
常见问题
- 如何由 MTU 计算 MSS?
- 减去 IP 头与 TCP 头:1500 − 20 − 20 得到以太网 IPv4 上常见的 1460。隧道开销要在此之前扣除。
- 为什么我的 MTU 是 1492 而不是 1500?
- 多数 DSL 和不少光纤使用的 PPPoE 会增加 6 字节 PPPoE 头与 2 字节 PPP 头,这些都从以太网载荷中扣除。
- WireGuard 隧道该钳制到多少?
- WireGuard 在 IPv4 上约占 60 字节,IPv6 上约 80 字节,因此 1500 的链路大致剩下 1400 与 1360。
- 如何用 ping 找出路径 MTU?
- 禁止分片并逐步减小包体:Linux 用 ping -M do -s 1472,macOS 用 ping -D -s 1472,Windows 用 ping -f -l 1472。在能通过的最大值上加 28 字节。
相关工具
全部 ArrayKit 工具