OVHcloud在欧洲部署了多个数据中心,其中法国鲁贝和格拉沃利讷两个机房因为带宽成本低、硬件配置灵活,常被国内用户拿来做测试服务器或反向代理入口。不过跨境链路受运营商国际出口、光缆走向和回程路由影响,单纯看机房标称带宽并没有实际意义。这次评测从电信、联通、移动三条家宽线路出发,对两个法国节点做了连续72小时的ICMP、TCPing和MTR采样,重点观察晚高峰时段的延迟和丢包变化。

一、测试环境与工具选择
测试环境包括三条运营商线路,分别位于上海电信、广州联通、北京移动。两个OVHcloud节点使用标准VPS实例,系统为Debian 12,内核开启BBR。测试时间覆盖工作日和周末,采样间隔为10秒,每天产生约8640条记录。ICMP使用系统自带ping,TCPing使用自建脚本,每次建立TCP连接并记录时间,MTR则同时记录每一跳延迟和丢包。
选择TCPing而不是只看ping的原因在于,很多线路对ICMP的优先级别和实际TCP数据包不一致。有的机房会限速ICMP响应,或者中间路由器对ICMP进行策略丢弃,导致ping看起来延迟低但实际建连很慢。TCPing直接测试三次握手时间,更接近真实使用体验。另外HTTPS首字节时间通过curl的time_starttransfer字段获取,可以反映TLS握手和服务器响应能力的综合表现。
# 连续ping采样,每秒5个包 ping -c 3600 -i 0.2 51.91.xx.xx # TCPing脚本,测试443端口 for i in $(seq 1 3600); do start=$(date +%s%N) timeout 3 bash -c "echo > /dev/tcp/51.91.xx.xx/443" 2>/dev/null end=$(date +%s%N) echo "$(( (end - start) / 1000000 )) ms" sleep 0.2 done # MTR路由追踪,每10秒输出一次 mtr --report --report-cycles=200 --interval=0.2 51.91.xx.xx
二、三网延迟数据与路由分析
先看整体数据。电信线路去程延迟最高,上海电信到OVHcloud巴黎接入点平均ping在270毫秒左右,20点到23点经常超过310毫秒。联通广州线路表现相对好一些,平均210毫秒,但回程经常绕美国圣何塞或者洛杉矶,形成明显的单向延迟差。移动线路的优点是去程走香港或新加坡,但回程经常走欧洲内部绕行,丢包率在晚高峰会从1%升到5%以上。总体来看,三条线路的延迟都不是固定值,晚高峰比凌晨高出60到90毫秒很常见。
用表格汇总主要数据,可以更直观看出差异。需要说明的是,表中的丢包率是ICMP统计结果,实际TCP业务丢包率会略低,因为TCP有重传机制。但高延迟下的重传会让带宽利用率大幅下降,尤其是跑HTTPS小文件请求时表现更明显。
| 线路 | 节点 | 平均ping | 晚高峰ping | TCPing | 丢包率 |
|---|---|---|---|---|---|
| 上海电信 | 鲁贝 | 268ms | 312ms | 287ms | 1.8% |
| 上海电信 | 格拉沃利讷 | 272ms | 319ms | 291ms | 2.1% |
| 广州联通 | 鲁贝 | 214ms | 248ms | 226ms | 0.9% |
| 广州联通 | 格拉沃利讷 | 219ms | 255ms | 232ms | 1.2% |
| 北京移动 | 鲁贝 | 241ms | 278ms | 260ms | 3.5% |
| 北京移动 | 格拉沃利讷 | 247ms | 286ms | 268ms | 4.6% |
路由层面,电信去程通常从上海出口经法兰克福或者伦敦中转,再进入法国骨干网。这种路径虽然物理绕远,但好在很少出现大面积丢包。联通去程部分走广州出口到法兰克福,回程则因为OVHcloud与某些运营商的peering策略,被调度到美国西海岸再回来,造成单程比去程高40到60毫秒。移动线路对国际出口的调度比较频繁,同一天内可能切换不同端口,路由变化最大,这也是丢包和延迟波动的主要来源。
# 上海电信到OVHcloud鲁贝节点MTR片段 HOST: localhost Loss% Snt Last Avg Best Wrst StDev 1.|-- 192.168.1.1 0.0% 100 1.2 1.5 1.1 3.2 0.3 2.|-- 100.64.0.1 0.0% 100 5.8 6.1 5.2 9.7 0.8 3.|-- 61.152.xx.xx 0.0% 100 7.4 7.8 7.0 13.5 0.9 4.|-- 202.97.xx.xx 12.0% 100 156.3 165.9 148.2 210.7 15.3 5.|-- 212.73.xx.xx 8.0% 100 221.5 228.7 205.4 274.3 18.1 6.|-- 51.91.xx.xx 18.0% 100 269.8 276.4 251.3 319.6 19.7
三、TCP握手与HTTPS首字节表现
ICMP延迟只能说明网络层可达,真实业务更在意TCP建连速度和TLS握手时间。从数据来看,三条线路的TCPing平均值都比ping高出10到25毫秒,这符合TCP三次握手的开销。但HTTPS首字节时间差距更大,因为TLS握手包含多次往返,延迟高会成倍放大。以上海电信到鲁贝节点为例,ping平均268毫秒,TCPing平均287毫秒,而HTTPS首字节平均需要820毫秒,部分晚高峰样本超过1.2秒。这意味着即使页面内容很小,用户也要等至少接近1秒才能看到第一个字节。
测试HTTPS首字节时间使用curl的time_starttransfer字段,命令如下。测试时对同一个1KB静态文件重复请求50次,丢弃前5次握手缓存,取剩余45次的平均值。为了避免本地DNS缓存干扰,请求直接使用IP并指定Host头。从结果看,移动线路的首字节时间波动最大,标准差接近200毫秒,联通线路最平稳。
# 测试HTTPS首字节时间
curl -o /dev/null -s -w "dns: %{time_namelookup}\ntcp: %{time_connect}\ntls: %{time_appconnect}\nttfb: %{time_starttransfer}\n" https://51.91.xx.xx/1k.bin
还有一个值得注意的点是,高延迟下HTTP/2和HTTP/3的收益并不完全相同。HTTP/3基于UDP,在丢包时不像TCP那样容易触发队头阻塞,理论上更适合跨境高丢包链路。但OVHcloud默认的负载均衡和CDN配置不一定都开启HTTP/3,需要手动检查ALPN协商结果。如果服务器端支持HTTP/3,国内用户配合支持QUIC的客户端,首字节时间可以缩短10%到20%。
四、降低OVHcloud法国节点延迟的可行方案
如果必须使用OVHcloud法国节点,直接裸连效果有限。比较有效的策略是DNS分区解析,让不同运营商走不同的优化线路。例如电信用户走CN2中转入口,联通用户直接连,移动用户走香港或新加坡中转。DNS分区可以通过自建权威DNS或使用云解析服务实现,将电信线路解析到中转机IP,联通和移动解析到源站或不同中转机。这样不需要修改业务代码,就能利用各运营商的国际出口差异。
对于流量较大或对稳定性要求较高的场景,可以考虑在法兰克福或新加坡部署轻量中转。用Nginx做TCP反代,把来自国内443端口的流量转发到OVHcloud法国节点的443端口。中转机选择上,法兰克福到法国物理距离近,回程如果绕美国会导致延迟不如香港中转,但香港到法国的物理距离又远,需要根据实际线路测试。这里给出Nginx stream模块的配置示例。
stream {
upstream ovh_fr_backend {
server 51.91.xx.xx:443;
}
server {
listen 443;
proxy_connect_timeout 3s;
proxy_timeout 30s;
proxy_pass ovh_fr_backend;
}
}
除此之外,开启BBR、调整TCP初始拥塞窗口、使用TLS 1.3减少握手往返次数,这些对降低首字节时间都有帮助。特别是TLS 1.3把握手往返从2次减少到1次,对于250毫秒以上的链路,可以节省一次RTT的时间。需要注意的是,如果使用中转方案,中转机和源站之间也要开启BBR,否则回程丢包会被放大。整体来看,OVHcloud法国节点适合对价格敏感、对延迟要求不极端的场景,如果核心业务需要稳定低于200毫秒,还是建议优先考虑德国或荷兰机房,或者直接使用香港、日本等亚太节点。

