国外网站打开慢怎么解决呢?先记住一个数:五秒。这是个常用口径,不是我测出来的。

从点开到出内容,中间按时间走过五段。哪一段超了,就查那一段。

一条命令能把这五段分开:

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

跑两遍。第二遍的数才比较稳。

头两秒:换了域名还没拿到地址

<figure><img src="https://image.bt.cn/20261111/2d8d9f92a002b0c59a5182ee9cb98a8b.svg" alt="国外网站打开慢:0 到 5 秒里五段时间分别在看什么" loading="lazy" width="1200" /><figcaption>0 到 5 秒里发生五件事,横轴是秒不是毫秒;五秒这条线过了还没出首屏,就往下查。</figcaption></figure>

这一段是解析。dns 这个数就是它。

dns 这个数接近 total,说明时间全花在问地址上。

换一家 dns 再跑一次,看这个数降不降。

不降,说明慢在对方那台权威服务器,本地换谁都没用。

第二秒到第五秒:连接和握手

这一段有两件事:建立连接。谈加密。两个数分开看。

conn 减 dns:连接慢,是路的问题,看是不是绕了很远。

tls 减 conn:握手慢,看证书链和协议版本。

两个都短、后面却慢:那就过了这一段,往下看。这一段没问题别在这改。

第五秒之后:等首字节

请求已经到对方那边了,就是不回话。

这一段最容易被误判成「网络差」。

其实跟路没关系。改线路改不动它。这是最容易改错的地方。

这里可以用宝塔拨测的网站测速跑一轮,看各地是不是都卡在这一段。

先看对方有没有做地区限制。再看回源是不是在另一块大陆上。这两样都在对方那边。

页面开始出内容:下载

首字节到了,内容开始往下走。

这一段慢。先看体积。再看请求数。两样都要看。

国外的站常常挂着几十个第三方脚本。一个卡住。整页都等。

各地都卡:体积的事。只有你卡。这条路的事。

同一时间换个地区再走一遍

同一分钟。换一个地区跑一遍。别隔天。

五段里变长的还是同一段:那就是站点侧的事。改什么都在对方那边。

五段里变的是不同段:那是路的事。改本地的接入点才有用。

两遍比完再动手。只跑一遍就改配置。等于蒙。

有一个我还没确认:同一条线路。早晚测常常差一倍。这算调度还是负载。我分不出来。所以只能同一个小时里比完,再下结论。