有一台服务器,使用 Ubuntu 20.04 系统,上面装着 wordpress ,安装插件的时候偶然会提示 curl 错误, 无法连接 https://downloads.wordpress.org/ , 然而并不是所有时段都出错,多数时间是可以的,极少数时间出错。 然后写了个脚本用来测试 curl 这个域名的错误,脚本我贴这里了 https://pastebin.com/QC2UPqgb 脚本的意图就是每隔两秒获取一次链接里面的内容, 如果不能获取到特定关键字则判断为失败并记录日志, 经过多次在不同的时间段测试脚本,发现 1000 次会出现大约 50-70 次左右的错误, 我本来以为是网络不太好,同时用 mtr 测试,结果是零丢包,去测试 cloudflare 官网也无错误发生。
最离谱的是,我进入救援系统后,用这个脚本测试完全没有错误, 所以错误导致发生的原因可能就是服务器本身的 Ubuntu 有问题, 可是完全没有其他头绪了,请教各位可能是什么原因。
1
dsareopsar 2023-04-13 09:18:59 +08:00 via Android
墙内机器吧?间歇性 dns 污染,间歇性阻断
|
2
fiveStarLaoliang 2023-04-13 09:24:22 +08:00
八成是 dns 问题
|
3
alect OP |
4
dsareopsar 2023-04-13 09:53:43 +08:00 via Android
@alect 最好写个程序来测试,因为 http timeout 超时原因有很多,除了 tcp 连接时间以外,还有 tls 超时,response 响应超时,http2 连接超时
|
5
alect OP @dsareopsar 哇 这就麻烦了,反正肯定是 Ubuntu 的设置哪里肯定有问题,
我切换到救援系统去测试是完全正常的,一旦回到生产系统测试就有几率出错。 |
6
watzds 2023-04-13 10:15:18 +08:00
看看各个阶段的耗时啊,下面请求两次百度,长连接第二次有区别
curl -X POST -w "\ndns_resolution: %{time_namelookup}, tcp_established: %{time_connect}, ssl_handshake_done: %{time_appconnect}, TTFB: %{time_starttransfer}, total: %{time_total}\n" -s "https://www.baidu.com" "https://www.baidu.com" |
7
liuxu 2023-04-13 10:20:16 +08:00 via Android 1
|
8
mikewang 2023-04-13 10:43:39 +08:00 via iPhone
curl 加个 -v ,看哪个步骤出问题了
|