VPS 网络怎么检查:用 curl 与 MTR 定位慢在哪一步
对自己的 HTTPS 服务进行有界检查,分开 DNS、建连、TLS 和首字节等待,并正确理解 MTR 中间节点与目标端的丢包。
有位编辑 · 内容更新 2026-09-14 · 资料与计算口径
带着同一份记录比较网络
先写下访问地区、运营商、业务目标和可接受的响应时间,再记录不同时间的结果。模板留空,供你填写自己的测量数据。
查看模板内容
VPS 网络验收记录 · 有位 一、场景与目标 测试日期、时区: 本地城市、运营商、接入方式(有线 / Wi-Fi): 目标域名或 IP、商家、机房、套餐: 业务 URL、请求内容与文件大小: 可接受的响应耗时、错误率及使用时段: 二、同一目标的重复测量(按实际时间填写) 时段 | 样本数 | DNS | TCP | TLS | TTFB | 总耗时范围 | HTTP 状态 / curl 错误 非高峰: 高峰: 另一个日期复测: 三、路径和终点 mtr 模式、端口、循环次数: 终点丢包 / 响应: 中间节点是否有丢包,而终点仍正常: 换时段 / 换接入网络后的差异: 四、判断与下一步 异常发生在 DNS、连接、TLS、等待响应还是传输阶段: 是否能用相同请求再次复现: 尚未排除的变量(Wi-Fi、服务负载、缓存、限速): 继续使用 / 复测 / 携带记录联系商家: 注意:curl 时间字段是累计值,阶段耗时需相减;单次测试与中间节点不回应不足以证明线路故障。 填写实际观测值,不用示例数据代替测试。 方法说明:https://vps.codreamer.com/guides/vps-network-checklist
先固定目标和测试条件
准备自己管理的 VPS、直接指向它的域名、有效 HTTPS 证书,以及一个很小的只读静态文件,如 /health.txt。若域名经过 CDN,结果首先反映 CDN 的访问链路,不能当作直连 VPS 的测试。以下是可复用的检查方法与假设算例,本站没有据此发布任何套餐实测成绩。
用同一个文件,在工作日白天和晚间分别检查;有条件时再用家宽与手机网络各测一组。记录城市、运营商、接入方式、时间和目标 IP。不同网络没有同一台设备可用时,注明设备差异,不把 Wi-Fi 干扰与跨网路径问题混在一起。
用十次 HTTPS 请求建立样本
在已安装 curl 的 Linux、macOS 或 WSL 终端运行。先将 YOUR_VPS_DOMAIN.invalid 与路径替换成自己的目标;.invalid 是占位域名。命令只读取文件、丢弃响应正文并打印结果,不修改服务器配置。它绕过本机代理、不跟随重定向,每次单独建连,连接阶段最多等待 5 秒,整个请求最多 15 秒。
先确认 status 是预期的 200,目标 IP 也符合预期。301/302 表示只测到了跳转响应,应改用最终地址重新测;404 不能当作目标文件正常返回。十次样本用于发现重复现象,不能证明全天可用率。
for sample in 1 2 3 4 5 6 7 8 9 10; do
date -u '+%Y-%m-%dT%H:%M:%SZ'
curl -q --noproxy '*' -4 --http1.1 --silent --show-error \
--output /dev/null --connect-timeout 5 --max-time 15 \
--write-out 'ip=%{remote_ip} status=%{http_code} dns=%{time_namelookup} tcp=%{time_connect} tls=%{time_appconnect} first=%{time_starttransfer} total=%{time_total}\n' \
'https://YOUR_VPS_DOMAIN.invalid/health.txt'
sleep 2
done时间列是累计里程碑,不要直接相加
curl 的 dns、tcp、tls、first、total 分别记录从开始到解析完成、TCP 建连完成、TLS 握手完成、收到首字节和请求结束的累计秒数。例如假设输出 0.01、0.15、0.30、0.80、0.90,在本例单次直连 HTTPS 条件下,可粗分为解析 10 ms、建连 140 ms、TLS 150 ms、握手后至首字节 500 ms、后续接收 100 ms。
最后两段仍受网络和服务端共同影响,500 ms 不能直接标成“后端执行时间”。若静态文件很快、真实页面很慢,再对照应用日志检查排队、数据库和回源。证书验证失败应先检查域名、证书链与本机信任,不把错误当作线路差,也不通过加入 -k 关闭验证来制造成功结果。
再用 MTR 查看沿途响应
mtr 需已安装并具备发送探测报文的权限;权限不足时按本机管理员的配置处理。下方命令进行 20 轮 TCP 443 端口探测,禁用反向域名解析,完成后打印报告,不改动路由或防火墙。TCP 探测与前面的 HTTPS 端口一致,但并不等于完整的 HTTPS 请求。
先保存目标端的 Loss%、发送样本数、Avg 与 Wrst,再查看中间节点。平均值适合比较整组,最差值帮助发现尖峰;短样本中的一次异常不宜直接定性。若目标只有 IPv6,可在确认本机具备 IPv6 连通性后,将两组命令的 -4 都改为 -6,分别记录两种协议的结果。
mtr -4 -n -r -c 20 -T -P 443 YOUR_VPS_DOMAIN.invalid中间节点丢包与目标端丢包分开判断
mtr 官方说明,中间路由器可能不响应或限制探测应答。假设某一跳显示 60% 丢包,后续目标为 0%,且 HTTPS 请求正常,这不足以证明该跳丢弃了 60% 的业务流量。不能只截取最红的一行,也不要把各跳的往返延迟相加。
若目标端也出现丢包,先增加不同时段样本,并对照同一时间的 HTTPS 错误与延迟。20 轮中两次未响应只说明本组探测有 10% 未收到应答,不能据此保证业务请求也有同样失败率;目标防火墙、探测应答策略和主机负载都可能影响结果。
按症状留下可复查的结论
把十次成功请求的 total 排序查看中间水平,同时单独保留失败次数和最慢值,避免把超时样本从报告中消失。一次只改变一个条件:同机换接入网络、同网络换时段,或同服务器比较静态文件与真实页面。这样才能缩小问题范围。
测试结论应写成“某时间、某网络到某目标的观察结果”。这套检查不验证商家的线路名称承诺,也不能代替其他城市、反向链路或长期吞吐量测试。需要商家协助时,提供完整命令、时间、目标和对应业务现象,比仅提供线路标签更容易复查。
- DNS 阶段反复偏慢:检查域名解析与本地解析环境,再用同一目标复测。
- TLS 报错:先处理证书或信任问题;HTTP 5xx:结合服务器日志确认服务状态。
- 单一接入网络在特定时段变慢:补充同设备换网络的样本,再判断是否与该路径相关。
- 记录表:时间 __;城市/运营商 __;目标 IP __;HTTPS 成功 __/10;目标端 MTR 未响应 __/20;业务现象 __。
资料与进一步核对
以下是计算单位、计费示例或工具行为的一手资料。商家条款仅适用于对应服务;文中算例为演示输入,购买时需核对目标商品。