VPN与MTU设置的关系说明及优化调校实用操作指南 - clash verge
VPN 基础

VPN与MTU设置的关系说明及优化调校实用操作指南

不少使用VPN隧道访问网络的用户都遇到过这类反常现象:小体积的文字网页能正常打开,但是带大附件的邮件无法发送、高清图片资源加载到一半卡住、大文件传输到固定进度就直接中断,断开VPN之后所有问题立刻消失。很多人第一反应是VPN节点本身不稳定,实际上这类问题有相当高的概率和MTU参数不匹配有关,本文围绕VPN与MTU设置:关系说明展开,从故障现象溯源到底层逻辑,clash verge github给出可落地的分步调校操作指南,帮用户排查解决这类兼容性问题。

网络设备:VPN与MTU设置:关系说明

用户在居家网络环境中调校MTU参数,解决VPN隧道下大文件传输卡顿中断的问题

VPN与MTU设置的核心对应关系

常规以太网链路的默认MTU也就是最大传输单元,通常设置为1500字节,指的是单个数据包在不进行分片的情况下能承载的最大数据体积。而VPN的核心工作逻辑是隧道封装,clash所有要传输的原始网络数据包,都会被VPN协议额外加上加密头部、隧道标识头部等附加信息,相当于在原有数据包的基础上额外增加了传输体积。

这也是VPN与MTU设置:关系说明的核心逻辑:如果VPN隧道的封装开销没有被提前预留空间,原本刚好填满物理链路MTU的数据包,在被VPN封装之后体积就会超过链路允许的上限,部分网络设备会直接丢弃这类超限数据包,不会返回任何通知信息,最终就会出现小体积数据传输正常、大体积数据莫名卡住的半断连状态。

调校前的前置检查准备

不要上来就直接修改系统全局的MTU参数,首先要确认当前正在使用的VPN隧道对应的协议类型,不同的VPN协议的封装开销差异很大,有的协议仅增加少量头部字节,有的协议叠加多层加密封装之后的开销会大很多,先从当前VPN连接的属性面板里确认启用的隧道协议类型,避免直接照搬网上的通用参数导致适配错误。

接下来还要确认本地底层物理网络的默认MTU状态,clash部分家用宽带使用PPPoE拨号接入,本身就会叠加额外的链路头部,默认MTU本身就小于标准以太网的1500字节,如果当前接入的是公共WiFi、企业内网这类中间网络,上层网络的MTU规则可能和家用宽带完全不同,先确认底层网络的基础参数,再调整VPN相关配置,避免改完之后普通网络连接也出现异常。

分步排查调校的实操步骤

完成前置检查之后,首先要在已经连接目标VPN节点的状态下,打开系统自带的命令行工具,发起带不分片标记的ping测试,逐步调整发送的数据包的体积,找到能正常返回响应、不会被丢弃的最大数据包尺寸,这个数值就是当前VPN隧道下能无分片传输的纯数据部分的上限。

用刚才测试得到的最大纯数据尺寸,加上IP头部、ICMP头部的固定长度,就能算出当前VPN隧道适配的最佳MTU数值,这个数值一定小于底层物理网络的MTU,不可能超过物理链路的传输上限,不要刻意设置超过物理链路上限的数值,否则所有数据包都会被强制分片,反而会大幅提升传输出错的概率。

把算出来的最佳MTU数值,填写到当前VPN连接的自定义配置栏里,不同操作系统的设置入口有区别,Windows系统可以在VPN适配器的IPv4属性面板里修改对应参数,macOS系统可以在网络设置的对应VPN连接的高级选项里调整,大部分开源VPN客户端也自带独立的MTU自定义配置项,不需要修改系统全局参数。

参数修改完成之后,先手动断开当前VPN连接,等待几秒之后重新连接VPN,访问之前出现加载异常的站点,尝试传输之前容易中断的大体积文件,观察传输过程中是否还会出现中途卡住、无响应的情况,验证调校的实际效果。

调校后的常见误区规避

很多用户调校之后发现还有少量站点存在加载异常的情况,就反复把MTU数值调到远低于实际可用的上限,这种操作反而会让同样体积的传输内容被拆分成更多的小数据包,每个数据包都要携带独立的头部信息,额外开销占比大幅上升,整体传输效率反而会明显下降,完全没有必要刻意设置过小的MTU数值。

还有不少用户误以为只要测出一个适配的MTU数值,所有VPN场景都可以通用,实际上切换不同的VPN节点、更换不同的隧道协议、甚至更换本地接入的WiFi或者移动网络之后,适配的最佳MTU都会发生变化,每次切换使用场景之后,最好重新做一次简单的ping测试确认适配性。

需要明确的是,MTU调校只是优化VPN传输兼容性的手段,不能解决所有VPN连接故障,如果调整完适配的MTU之后,依然出现大面积丢包、频繁断开连接的情况,还是要排查节点连通性、本地防火墙规则这类其他层面的问题,不要把MTU调整当成解决所有VPN网络问题的万能方案。

网络加速编辑组 - clash mate
从延迟、抖动和丢包入手,分析不同网络环境下的连接体验。
查看更多文章
配置入门

找到适合当前设备的指南

遇到直连例外过宽相关问题,可从“缩小到明确需要的目标并保留原规则备份”开始阅读。不能把所有私有网段都默认视作本地资源,需要结合具体环境判断。