
问题背景:公司关闭应用外网访问改为vpn访问,之所以这样改主要是是为了提高安全性,但是平台通过vpn可以连上,但是打开很慢很卡。才引出了这个专业名词《TCP 最大报文段长度》
MSS(TCP 最大报文段长度)到底影响什么,再用 VPN 举个真实场景。
- 先一句话说清 MSS
MSS = TCP 一次能发的最大 “纯数据” 长度
它 = MTU - IP 头 (20) - TCP 头 (20)
常见:
以太网默认 MTU 1500 → MSS 1460
加了 VPN 头部后 MTU 变小 → MSS 也要跟着变小 - MSS 直接影响哪些问题?
MSS 太小 / 太大,都会出问题:
① 丢包、延迟变高
MSS 太大 → 报文超过链路 MTU
→ 路由器必须分片,或直接丢包(很多设备禁分片)
→ 重传 → 延迟飙升
② 吞吐量上不去
MSS 太小 → 同样数据要发更多包
→ 包头占比高,效率低
→ 带宽跑不满
③ 连接建立慢、网页打不开
典型表现:
能 ping 通
但打不开网页、发不了大消息
小数据包正常,大数据就卡
这就是MTU/MSS 不匹配最经典的症状。
④ VPN 里最常见:TCP 撞 TCP 雪崩
你走 TCP 协议的 VPN(如 OpenVPN TCP)时:
内层 TCP 发一个大包
外层 VPN 再封装一次
如果 MSS 没调小 → 必分片 / 丢包
→ 内层 TCP 以为丢了,重传
→ 外层 TCP 也重传
→ 越传越堵,速度直接跌成几 KB - 用 VPN 场景举例(最直观)
场景:你在公司外连公司内部 VPN
正常情况(没 VPN)
网络 MTU 1500
TCP MSS = 1460
数据发得很顺。
加了 VPN 后(例如 IPSec / OpenVPN)
VPN 要加额外头部:
IP 头 20
TCP/UDP 头 20
VPN 加密头~30~60
假设总共多了 60 字节。
那么:
原来 MTU 1500
现在有效 MTU 变小
原来 MSS 1460 就太大了,会超!
结果:
大包直接被丢弃
或者被分片,丢一片就全重传
表现:
能连 VPN
能 ping
但打不开内网网页、传文件极慢
正确做法
VPN 场景必须降低 MSS(MSS 钳制):
例如从 1460 → 1400 或更低
给 VPN 头部留出空间。 - 总结:MSS 影响什么?
是否丢包
延迟高低
带宽能不能跑满
VPN 稳不稳定、快不快
小包正常、大包卡死这类诡异问题
一句话:
MSS 就是 TCP 数据包的 “限高杆”,太高撞桥,太低效率低。
我直接给你运维现场最常用、实测稳定的 MSS 值,你拿来就能用。
先统一前提:
物理链路 MTU = 1500(标准以太网)
MSS = MTU - IP 头 - TCP 头 - VPN 额外开销
一、各 VPN 推荐 MSS(通用稳定值)
- 普通网络(无 VPN)
MSS:1460 - IPSec VPN(最常见)
不管是 IKEv1 / IKEv2 / L2TP+IPSec
推荐 MSS:1406
(预留 ESP 头 + 可能的分片 / 验证开销)
绝大多数企业网关、防火墙、路由器都用这个值。 - OpenVPN
TCP 模式:1400
UDP 模式:1400
OpenVPN 封装开销略大,1400 是最稳的通用值。 - WireGuard
开销最小、最干净
推荐 MSS:1420
二、超简记忆版(直接背)
无 VPN:1460
IPSec:1406
OpenVPN:1400
WireGuard:1420
三、什么时候要再往小调?
只要出现这些症状,直接再减 20~40:
能 ping,但网页打不开
发小文件正常,大文件卡死
VPN 一跑大流量就断流
跨运营商、4G/5G、卫星网络
通用兜底安全值:
1380
几乎所有 VPN + 所有网络都能稳跑。
点滴生活,生活点滴,都需要你来陪伴,往后余生,请多多指教。男人最幸福的事情是:一个好妻子,一份好工作,一个好身体。