记一次网速不佳的排查过程
复盘一次间歇性网速异常的排查,逐步检查代理、DNS、路由、网卡与无线信号。
网速不佳的常见原因包括:
- 路由器质量较差,例如处理芯片性能不足、过热或天线信号差,都会拖慢数据传输。
- 运营商的实体线路有问题。这种情况最难排查,我就曾遇到过入户网线部分断裂。
- 运营商服务异常,例如骨干网短时不可用、DNS 响应慢或 HTTP 劫持。
- 运营商本身的服务质量和口碑较差,例如宽带通。
- 忘记关闭本地全局代理,导致国内流量访问缓慢;流量也可能经过了不明的透明代理。
一天晚上使用电脑时,我发现网速很差,状态栏显示的速度如下:
不过,偶尔打开网页时,速度又会瞬间达到几 MB/s。同时,手机并没有像电脑一样卡顿,因此我怀疑问题出在电脑上。
我依次做了下面几项检查:
-
关闭所有代理,包括 Shadowsocks 以及终端中设置的
http_proxy等环境变量。 -
重启网卡。这一步很有必要:包括 QQ 在内的一些软件在使用过全局代理后,流量可能无法恢复到直连状态。
Terminal window sudo ifconfig en0 downsudo ifconfig en0 up无效。
-
重启路由器并调整天线方向。无效。
-
重启电脑。仍然无效。网速时高时低,但打开网页的瞬间速度都很快,于是我开始怀疑 DNS。
解决方案
先用 dig 记录只通过路由器进行 DNS 解析时的耗时:
然后增加两个优先级更高的 DNS 服务器:
223.5.5.5119.29.29.29再次测试解析时间:
最快和最慢响应时间都有改善,网速恢复到了可以接受的水平。
后续
最终确认,主要原因是笔记本被遮挡,导致无线信号太弱。当然,路由器提供的 DNS 确实也比较慢。