国外网站打开慢怎么解决方法?搜一圈,答案多是「国际带宽不够,忍忍」。

我一开始也这么以为。后来测出来,慢只慢在一段,其他四段都正常。

五段耗时要分开看:解析、连接、握手、等首字节、下载。

看哪个数 怎么读 这一类常见在哪
dns接近 total本地递归离得远
conn 减 dns这一段最长出国链路与路由
tls 减 conn这一段最长证书链与握手次数
ttfb 减 tls这一段最长后端与回源
total 减 ttfb这一段最长页面体积与静态资源

慢在解析还是慢在下载,怎么看得出?

先跑一条命令,把五段分开:

`` curl -o /dev/null -s -w 'dns=%{time_namelookup} conn=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' https://国外站点 ``

跑两遍(同一小时内),取数值稳定的那一次。两遍差得多,就先别下结论。

再看 dns 是不是占了大头。

它接近 total:整趟都耗在解析上,后面几段再快也没用。

这时候换一家 DNS 再跑一次,看 dns 有没有明显降。

dns 很小、total 减 ttfb 很大:慢在下载,先看图片和第三方脚本。

一页几百 KB 和几 MB,在国内不明显,出国就被放大。所以先压图片。

只有自己这儿慢,还用不用管服务器?

不用先动服务器。

先分清是不是只有自己这儿慢:用宝塔拨测的网站测速跑多地区节点。

各地都慢、数值接近,说明是站点侧的事;只有国内慢、国外节点正常,那就是这条路的事。

这一步能省掉一轮白改。

本地能做的先做:换一条线路试、关掉代理试、换一台机器试。

三样都试过还是慢,就不是你这一台的事了。

换了线路还慢,问题在站点这一侧吗?

不一定。

换线路之后,conn 降下来了、ttfb 还是长,那就多半在等后端。要确定,得同一时刻和另一个地区比同一段。

换线路之后五段都没改善,才怀疑站点。

还有一种:换线路之后 total 变短了,但用户还说慢。那多半不是这条链路的事,是页面本身重。

判断依据只有一条:同一时刻,两地测同一页,比同一段。

本地正常、外地慢:这条链路的事。

两地都慢、且慢在同一段:站点侧的事。

分不清的时候,先固定一个变量:同一台机器、同一个页面、间隔一分钟,各测两次,只换地区。

我的取舍是:只在同一时刻比两地的同一段,别拿昨天和今天比。时间不一样,结论就不可比。

出国这一段还有个坑:白天和晚上的路由不一样。早上测一次正常,晚上再测就慢,这不是站点变了。

所以要比,就在同一个小时里比完。跨小时的对比,我不会拿来做结论。

测完把五个数抄下来。下次再慢,先比这两份数,看是哪一段又变长了。