最近搞到了一台 Gateway VPS16,到手第一件事肯定是要跑个分、测个速。机器基础配置不错,但有些时候,默认的网络设置并不一定能跑满带宽。今天我就来分享一下关于调优 MTU(最大传输单元) 这件事,看看能不能让速度再上一层楼。

什么是 MTU?为什么要改?

简单通俗点说,MTU 就像是网络传输中“包裹的大小限制”。标准以太网的 MTU 通常是 1500 字节。如果你的实际网络环境(特别是经过多层 NAT 或隧道的情况)不支持这么大,数据包就会被强制拆分。这个拆分和重组的过程不仅浪费 CPU 资源,还非常容易导致丢包,直观感受就是:带宽看起来很大,但实际下载速度上不去,或者网页打开偶尔卡顿。

MTU 数据包分片示意图

MTU 数据包分片示意图:过大的数据包在传输过程中被强制拆分,导致网络效率降低。

对于 VPS 来说,特别是这种走特殊线路或虚拟化程度较高的机型,找到你的“最佳 MTU”往往能稳住延迟,提升吞吐量。

怎么测出最佳数值?

别急着瞎改,我们要用科学的方法来探测。这里最常用的工具就是大家都熟悉的 ping 命令,通过指定“禁止分片”标志来探测。

我们可以用本地的电脑 ping 你的 VPS IP。Windows 和 Linux 的语法稍微有点区别,原理是一样的:

  • 核心逻辑:Ping 命令发送的数据大小 + 28 字节(IP头20字节 + ICMP头8字节) = 最终的 MTU 值。
  • 测试步骤
    1. 先从一个较大的值开始测,比如 ping -f -l 1472 你的VPS_IP(对应 MTU 1500)。
    2. 如果提示“Packet needs to be fragmented but DF set”(需要拆分但 DF 标志已设置),说明太大了,得减。
    3. 不断减小数值,直到刚刚好能 Ping 通且不提示拆分。
    4. 重点:假设你测试出 1400 能通,1401 就拆分,那么你的最佳 MTU 就是 1400 + 28 = 1428

Linux 终端下修改 MTU 的命令演示

在 Linux 终端中使用 ip 命令临时修改网卡 MTU 值的操作演示。

VPS 端的修改实操

测出数值后,就需要登录到 VPS 里面动手了。这里以常见的 Linux 系统(如 Debian/Ubuntu)为例,修改网卡配置文件。

1. 临时修改(重启失效)

想立刻看看效果,可以用 ip 命令直接改,假设咱们算出最佳 MTU 是 1428(注意:实际测试中很多云端机器 1450 左右是个甜点值,具体以你自己测试为准):

ip link set dev eth0 mtu 1428

改完立刻再跑一遍测速,看是不是稳了。

2. 永久修改

为了防止重启后失效,得写进配置文件。现在的发行版大多用 Netplan 或者传统的 Network Manager,如果是老一点的系统就直接编辑 /etc/network/interfaces

如果用的是 cloud-init 管理的机器(现在很多 VPS 都是),直接修改源文件可能会被覆盖,建议检查一下 /etc/network/interfaces.d/ 或者对应的 netplan yaml 文件,加上 mtu: 1428 这一行。

Gateway VPS16 实测感受分享

回到这台 Gateway VPS16,默认状态下跑分数据其实已经不错的了。但我在进行大文件传输(比如搬运数据)时,发现偶尔会有丢包导致的瞬断。

在经过上述的 Ping 测试后,我将 MTU 从默认的 1500 下调到了一个更贴合当前线路环境的数值。再次使用 iperf3 进行测速,结果非常喜人:

  • 稳定性提升:之前的抖动明显减少,曲线平直了很多。
  • 吞吐微涨:虽然物理带宽没变,但因为减少了重传,有效带宽利用率上去了。

总结

搞 VPS 的人(咱们常说的搬砖党)都有个毛病,总觉得还能再压榨点性能出来。调整 MTU 虽然是个小操作,成本极低,但属于典型的“磨刀不误砍柴工”。

如果你的线路在某些时段表现忽快忽慢,或者 TCP 握手感觉慢半拍,不妨按上面的步骤自查一下 MTU 设置。说不定就能收获意想不到的稳定提升。

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭