跳到主要内容

视频会议开到一半,对方的声音忽然碎成一段一段,像机器人说话;网页卡住一秒后又一下子全部加载出来;下载速度忽高忽低,可测速结果看起来又很正常。这类现象很多时候并不是带宽不够,而是丢包:已经发出的小块数据没有到达目的地。

本文只回答一个问题:开启 VPN 后为什么会出现丢包,以及怎样确定丢包到底发生在路径的哪一段。你会看到丢包的基本解释、常见原因、一套用系统自带工具就能重复执行的测试流程,以及一张读结果用的对照表。如果想先了解延迟的整体概念,可以先读 VPN 与延迟的关系。

丢包到底是什么

你在互联网上发送的一切内容都会被切成数据包,每个包通常不超过 1500 字节左右。这些包要经过一连串设备:你的手机或电脑、家里的 Wi-Fi 路由器、宽带运营商、中间的多家网络,最后才到达目的地。沿途任何一台设备在队列已满、无线信号受损或数据包过大无法通过时,都可能把包丢掉。互联网协议本身并不保证每个包都能送达,这一点在 IP 协议规范中有说明。

丢包之后会发生什么,取决于流量的类型。

  • TCP 流量(网页、下载和大多数应用)会发现缺了包,等待一会儿后重新发送。数据不会永久丢失,但传输变慢,你感受到的是卡顿。
  • UDP 流量(很多通话、游戏和直播)通常不会等待重传,丢了就是丢了,于是你听到爆音、看到画面冻结,或看到游戏角色瞬间弹回。

这就是为什么同样 3% 的丢包,网页还能打开,但网络通话已经没法用。

开着 VPN 时丢包的表现

丢包常被误认为网速慢。下面这些迹象更像是丢包而不是单纯低速。

  • 通话声音短促地中断,画面冻结后又突然追上来。
  • 在线游戏出现“拉回”现象,角色位置被强制拽回原处。
  • 测速成绩不错,但每次结果相差很大。
  • 页面开始加载,停一两秒,然后才完成。
  • 大文件下载速度冲高、骤降,再爬升,呈锯齿状。
  • 问题只在开着 VPN 时出现,或者反过来,开着 VPN 反而消失。

如果现象是持续的低速而不是时断时续,请改读为什么 VPN 感觉很慢,两者的处理方式不同。

常见原因:从身边到远处

丢包可能发生在路径上的任何位置,最好分区来想,先从离你最近的一段开始。

第 1 区:你的设备

老旧或负载很高的设备可能在数据包发出之前就把它丢了。例如开启了省电模式、电量见底的手机;因为备份或杀毒扫描导致 CPU 占满的笔记本;需要更新的网卡驱动。加密会让每个包多一点 CPU 运算,在性能不足的设备上,开启隧道时问题就更明显。

第 2 区:你的 Wi-Fi

这是最常见的来源。墙体、微波炉、同信道的邻居网络以及离路由器的距离,都会破坏无线信号。Wi-Fi 层会对受损的帧重试,重试多次仍失败,数据包就丢了。人口密集的公寓里使用 2.4 GHz 频段是典型例子。VPN 不会改变无线信号本身,所以没有 VPN 时就存在的丢包,开着 VPN 同样存在,而且隧道自己还要多一层重传,感觉可能更糟。

第 3 区:宽带运营商

晚高峰拥塞、线路老化、光猫故障或共享线路过于繁忙,都会让路由器之后的前几跳出现丢包。如果家里有人在看视频流,另一个人又在上传大视频,路由器队列就会被填满并开始丢包。当延迟同时飙升时,这种情况有时被称为缓冲区膨胀。

第 4 区:通往 VPN 服务器的路径

使用 VPN 时,你的流量先到 VPN 服务器,再从那里去往网站。如果你与该服务器之间的路径经过拥塞的链路,丢包就只会在开着 VPN 时出现。不同时间网络选择的路线会变化,早上正常的位置晚上可能就有丢包。距离也有影响:跳数越多,丢包的机会越多。

第 5 区:VPN 服务器本身

高峰时段繁忙的服务器可能因为网卡或 CPU 处理不过来而丢包。你无法直接测出这一点,但如果到该服务器的丢包很高,而同一路径去往其他目的地却很干净,就可以怀疑它。

第 6 区:数据包大小与 MTU

每个 VPN 都会给数据包加上额外的包头,因此没有隧道时大小刚好的包,进入隧道后就变得过大。如果网络无法分片,或者本应通知你设备的错误消息被拦截,大包就会消失,小包却能通过。典型症状是 ping 正常、小网页能打开,但大文件或某些加密网站卡住。查找最大安全包长的标准方法见 Path MTU Discovery 规范,实际影响可参阅 MTU 问题一文。

可重复的测试:同一个 ping 做三轮

不需要特别的软件。思路是一次只改变一个条件并对比结果。选一个稳定、能响应 ping 的公共地址,比如知名的公共 DNS 解析器地址,并把结果记下来。

第 1 步:测试路由器。 在 Windows 上打开命令提示符,在 macOS 或 Linux 上打开终端。找到路由器地址(常见为 192.168.0.1 或 192.168.1.1),发送 100 个 ping。

  • Windows:ping -n 100 192.168.1.1
  • macOS 或 Linux:ping -c 100 192.168.1.1

结束时看“丢包”那一行。健康的家庭网络应是 0%,响应时间只有几毫秒。如果这里就有丢包,说明问题在你的 Wi-Fi 或设备,更远的部分暂时不用管。

第 2 步:关闭 VPN,测试外网。 断开 VPN,对公共地址 ping 100 次,记下丢包率和平均耗时。

第 3 步:开启 VPN,测试外网。 连接 VPN,等十秒,再运行完全相同的命令,然后对比。

第 4 步:换个时间再测。 只在晚上出现的丢包指向拥塞;任何时间都出现,则指向固定故障。

第 5 步:换第二个 VPN 位置。 在 VPN 应用里切换位置,重复第 3 步。如果另一个位置很干净,说明第一条路径有问题。

如何读结果

路由器 关 VPN 测外网 开 VPN 测外网 最可能的原因
0% 0% 0% 此刻没有丢包;请在问题出现时再测,或检查抖动
有丢包 有丢包 有丢包 Wi-Fi、网线或设备;靠近路由器或改用网线
0% 有丢包 有丢包 宽带线路或光猫;重启设备并联系运营商
0% 0% 有丢包 通往 VPN 服务器的路径、服务器负载或包大小
0% 0% 仅大包丢失 MTU 问题
0% 0% 0%,但通话差 抖动或应用层问题,不是单纯丢包

在路径上找出丢包的位置

如果丢包明显与 VPN 路径有关,路由追踪可以显示是哪一跳在丢包。Windows 上用 pathping,macOS 和 Linux 上若已安装就用 mtr,否则用 traceroute。

比如 Windows 上的 pathping -q 50 8.8.8.8 大约需要几分钟,会输出每一跳的丢包表。解读时要小心。

  • 只在某一跳出现、后面的跳没有继续的丢包,通常无害。很多路由器会降低对测试包应答的优先级,却能把真实流量转发得很好。
  • 从某一跳开始、之后每一跳都持续的丢包才是真的。丢包就发生在这一跳或它前面的链路上。
  • 只在最后一跳出现的丢包,可能说明目标不喜欢被 ping,或者目标服务器很忙。

分别在关闭 VPN 和开启 VPN 时各追踪一次。开启 VPN 后最前面的几跳是通往 VPN 服务器的隧道,之后的细节会不同;但如果前段干净、中段很差,就说明丢包出在 VPN 服务器与目的地之间,而不是你家里。

实例:远程办公者的晚间会议

小梅在租来的公寓里办公。白天会议一切正常,但晚上九点,一开 VPN 团队通话就断续。

  • 路由器 ping:丢包 0%,3 毫秒。
  • 晚上九点,关 VPN 测外网:丢包 0%。
  • 晚上九点,开 VPN 测外网:丢包 6%,平均 90 毫秒。
  • 下午两点开 VPN 做同样测试:丢包 0%。
  • 晚上九点换另一个 VPN 位置:丢包 0%。

对照表可以得出:第一个位置的路径在晚上拥挤,而她家里的线路和 Wi-Fi 都健康。实际的处理办法是在晚高峰选第二个位置,并把时间规律记下来,万一需要联系支持人员时可以提供。

再看一个例子。阿伟即使关闭 VPN,在 Wi-Fi 上也有丢包:客厅里 ping 路由器丢包 4%,紧挨路由器的书房则是 0%。任何 VPN 设置都解决不了这个问题。挪动路由器、让笔记本改用 5 GHz 频段,或者接网线,才是正确的办法。

按难度排序的实用处理办法

按下面的顺序尝试,每做一步都用同样的 ping 重新测试。

  1. 用网线,或坐到路由器附近。 先排除头号嫌疑。
  2. 切换 Wi-Fi 频段。 5 GHz 覆盖距离短,但在拥挤的楼里通常比 2.4 GHz 干净。
  3. 重启路由器和光猫,等两分钟后重新连接。
  4. 关闭后台的大流量任务。 测试期间暂停云备份、系统更新和大文件上传。
  5. 更换 VPN 位置。 先选较近的,因为跳数少意味着丢包机会少。
  6. 重新连接 VPN,建立新的隧道,也许会走新的路线。
  7. 保留应用的默认连接设置。 如果应用有高级选项,一次只改一项,并且要先阅读应用说明或咨询支持。
  8. 更新应用、操作系统和网卡驱动。
  9. 检查冲突,例如另一个 VPN、会检查流量的安全软件或第三方防火墙。
  10. 换一个网络试试,比如用手机热点走移动数据。如果丢包在那里消失,说明根源在你家的网络。

更多稳定性建议见如何提升 VPN 连接稳定性。如果想在测试过程中确认隧道确实在工作,请参考如何检查 VPN 是否正常工作。

局限:哪些事你无法解决

要实事求是地看待哪些环节在你的掌控之内。

  • 高峰期拥塞的运营商线路,换应用也修不好。你只能避开高峰时段或联系运营商。
  • 运营商之间公网上的丢包不在你的控制范围内。换个 VPN 位置有时能绕开,但没有保证。
  • 一次测试不能当作证据。 丢包具有统计性,一百个 ping 只能给出粗略印象。遇到临界情况,请测 300 个以上,并多比较几次。
  • ICMP 不等于真实流量。 有些网络对 ping 的处理与通话、下载不同,所以应该用测试来发现规律,而不是当作精确测量。
  • VPN 并不保证质量更好。 它保护传输中的数据,代价可能是几毫秒的额外延迟和一点额外开销。

排查丢包时的常见错误

  • 只 ping 一次,只有 4 个包,就相信“0%”。
  • 不做关闭 VPN 的对比,就直接怪 VPN。
  • 在屋子远端的 2.4 GHz Wi-Fi 上测试,然后去改 VPN 设置。
  • 把追踪结果中间某一跳的丢包当成故障证据。
  • 同时改多个设置,结果不知道到底是哪一个起了作用。
  • 忘了家里其他人可能把上行带宽占满,从而让你丢包。
  • 把丢包与抖动或单纯的低速混为一谈。

总结

丢包就是数据包在途中被丢弃,影响大小取决于该流量是否会等待重传。使用 VPN 时,丢包可能出在你的设备、Wi-Fi、宽带运营商、通往 VPN 服务器的路线、服务器本身,或数据包大小的处理上。先 ping 路由器,再分别在关闭和开启 VPN 时 ping 外网,然后换一个位置,这套简单流程就能告诉你该修哪一区。每次改动后都要重新测试,并把结果看作规律而不是精确数值。

如果想在自己排查时用按天计的预付套餐试一个不同的位置,可以在价格页面了解套餐如何运作。

常见问题

VPN 丢包率多少算正常?

网络状况良好时,连续测试几分钟应当是 0%。偶尔低于 1% 的丢包通常不影响浏览网页和下载,但达到 2% 到 5% 以上,通话和游戏就会明显受影响;更高的数字往往说明 Wi-Fi、运营商线路或通往 VPN 服务器的路径确实有问题。

VPN 本身会造成丢包吗?

一般不会凭空制造丢包,但它会让路径变长、增加加密运算并给每个数据包加上额外的包头。这些因素可能把原本就存在的弱点放大,比如 Wi-Fi 信号差、服务器繁忙或 MTU 不合适,于是只在开启隧道时才出现丢包。

怎样判断问题出在我这边还是服务器一侧?

把同一个 ping 测试做三次:测路由器、关闭 VPN 测一个公共地址、开启 VPN 再测同一个地址。路由器就丢包说明是 Wi-Fi 或设备问题;只有开着 VPN 才丢包说明问题在隧道路径上;两种情况都丢包则要怀疑运营商线路。

为什么 ping 显示 0% 丢包,通话还是断断续续?

短时间的 ping 只抽查几个包,可能漏掉成串出现的丢包。另外,断续感也可能来自抖动,也就是延迟忽大忽小,而不是数据包丢失。建议延长测试时间,并同时观察延迟的波动。

换一个 VPN 位置能解决丢包吗?

有时可以。如果丢包出在通往某台服务器的路径上,换位置会走另一条路线,可能很干净。但如果丢包出在你自己的 Wi-Fi 或宽带线路上,换位置没有作用。

关于作者

Bob Kanokphon Thongdee,XPASS VPN 创始人

Bob Kanokphon Thongdee

  • XPASS VPN 创始人
  • eSIMonline.asia 联合创始人
  • 7 年以上网络营销经验
  • Cojourney Visa 与 Cojourney Travel 创始人

短途出行或忙碌的一个月,需要 VPN?

XPASS 提供按天数计算的预付通行证。一次付款,不会自动续费。

查看通行证

继续阅读

VPN 基础

VPN 能降低延迟(Ping)吗?延迟、抖动与丢包详解

VPN 会在路径上多加一站,所以 Ping 通常会略微升高。本文说明原因、何时可能改善,以及如何在自己的网络上测量。

阅读约 9 分钟

故障排除

VPN 为什么很慢?如何让它变快

VPN 变慢时的实用排查清单:先测速,再排除自己网络的问题,然后逐步处理 Wi-Fi、后台应用、设备设置和视频卡顿。

阅读约 7 分钟

故障排除

如何提升 VPN 连接稳定性

经常掉线或卡住的 VPN,通常是在对周围的网络或设备作出反应。这些步骤帮你找到并修复薄弱环节。

阅读约 5 分钟

故障排除

VPN 延迟详解:为什么 ping 会变高

延迟是数据开始到达之前的等待时间。本文讲解每一毫秒的来源、VPN 为什么会改变它、抖动的含义,以及不同活动需要多低的 ping。

阅读约 9 分钟

故障排除

VPN 的 MTU 问题:症状与解决办法

VPN 会给每个数据包再包一层,路径承载不了更大的包时,有的页面正常,有的就卡住。本文教你辨认并测试这个问题。

阅读约 9 分钟