的確用 HKT IP 進去就會被 302 到一個 HKT IP,但你也得看看,用非 HKT IP 或 HTTPS 進去時的 Server header 也相若。有可能只是 WPS 租一台 PCCW 的做二級緩存而已。
在我看來只是 WPS 自己的 CDN 調度,nginx/tengine 要做出這調度也很簡單,不如在 HKT IP 用 TCP traceroute 測一下,應該可以分辨出劫持點吧?
-==PCCW IP==-
# curl "
http://wdl1.cache.wps.cn/wps/download/ep/WPS2019/WPSProPlus_11.8.2.8576.exe" -Lvo /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0* Trying 123.53.182.246...
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0* Connected to
wdl1.cache.wps.cn (123.53.182.246) port 80 (#0)
> GET /wps/download/ep/WPS2019/WPSProPlus_11.8.2.8576.exe HTTP/1.1
> Host:
wdl1.cache.wps.cn> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: Tengine
< Content-Type: application/octet-stream
< Content-Length: 204818672
< Connection: keep-alive
< Date: Sun, 25 Aug 2019 06:52:43 GMT
< Cache-Control: max-age=86400
< Etag: "5d566014-c3548f0"
< Expires: Sun, 25 Aug 2019 20:02:11 GMT
< X-M-Log: QNM:xs1170;QNM3/304
< X-M-Reqid: XWQAALsnTjneF74V
< X-Qnm-Cache: Hit
< Accept-Ranges: bytes
< Last-Modified: Fri, 16 Aug 2019 07:49:40 GMT
< Via: cache28.l2cn1821[0,304-0,H], cache29.l2cn1821[2,0], cache4.cn850[0,200-0,H], cache3.cn850[6,0]
< Ali-Swift-Global-Savetime: 1565951011
< Age: 115313
< X-Cache: HIT TCP_HIT dirn:11:439342943
< X-Swift-SaveTime: Mon, 26 Aug 2019 00:09:31 GMT
< X-Swift-CacheTime: 86400
< Timing-Allow-Origin: *
< EagleId: 7b35b69715668312767406381e
-==HKT IP + HTTPS==-
# curl "
https://wdl1.cache.wps.cn/wps/download/ep/WPS2019/WPSProPlus_11.8.2.8576.exe" -Lvo /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 123.53.182.248...
* TCP_NODELAY set
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to
wdl1.cache.wps.cn (123.53.182.248) port 443 (#0)
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/ssl/cert.pem
CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
} [223 bytes data]
* TLSv1.2 (IN), TLS handshake, Server hello (2):
{ [104 bytes data]
* TLSv1.2 (IN), TLS handshake, Certificate (11):
{ [2633 bytes data]
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
{ [300 bytes data]
* TLSv1.2 (IN), TLS handshake, Server finished (14):
{ [4 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
} [37 bytes data]
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
} [1 bytes data]
* TLSv1.2 (OUT), TLS handshake, Finished (20):
} [16 bytes data]
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
{ [1 bytes data]
* TLSv1.2 (IN), TLS handshake, Finished (20):
{ [16 bytes data]
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use http/1.1
* Server certificate:
* subject: CN=
wdl1.cache.wps.cn* start date: Aug 21 00:00:00 2019 GMT
* expire date: Aug 20 12:00:00 2020 GMT
* subjectAltName: host "
wdl1.cache.wps.cn" matched cert's "
wdl1.cache.wps.cn"
* issuer: C=US; O=DigiCert Inc; OU=
www.digicert.com; CN=Encryption Everywhere DV TLS CA - G1
* SSL certificate verify ok.
> GET /wps/download/ep/WPS2019/WPSProPlus_11.8.2.8576.exe HTTP/1.1
> Host:
wdl1.cache.wps.cn> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: Tengine
< Content-Type: application/octet-stream
< Content-Length: 204818672
< Connection: keep-alive
< Date: Sun, 25 Aug 2019 06:52:43 GMT
< Cache-Control: max-age=86400
< Etag: "5d566014-c3548f0"
< Expires: Sun, 25 Aug 2019 20:02:11 GMT
< X-M-Log: QNM:xs1170;QNM3/304
< X-M-Reqid: XWQAALsnTjneF74V
< X-Qnm-Cache: Hit
< Accept-Ranges: bytes
< Last-Modified: Fri, 16 Aug 2019 07:49:40 GMT
< Via: cache28.l2cn1821[0,304-0,H], cache29.l2cn1821[2,0], cache4.cn850[0,200-0,H], cache3.cn850[1,0]
< Ali-Swift-Global-Savetime: 1565951011
< Age: 115827
< X-Cache: HIT TCP_MEM_HIT dirn:11:439342943
< X-Swift-SaveTime: Mon, 26 Aug 2019 00:09:31 GMT
< X-Swift-CacheTime: 86400
< Timing-Allow-Origin: *
< EagleId: 7b35b69715668317902284671e
<
{ [2223 bytes data]
8 195M 8 16.8M 0 0 4213k 0 0:00:47 0:00:04 0:00:43 4212k
-==其他 IP==-
# curl "
http://wdl1.cache.wps.cn/wps/download/ep/WPS2019/WPSProPlus_11.8.2.8576.exe" -Lvo /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0* Trying 123.53.182.248...
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0* Connected to
wdl1.cache.wps.cn (123.53.182.248) port 80 (#0)
> GET /wps/download/ep/WPS2019/WPSProPlus_11.8.2.8576.exe HTTP/1.1
> Host:
wdl1.cache.wps.cn> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: Tengine
< Content-Type: application/octet-stream
< Content-Length: 204818672
< Connection: keep-alive
< Date: Sun, 25 Aug 2019 06:52:43 GMT
< Cache-Control: max-age=86400
< Etag: "5d566014-c3548f0"
< Expires: Sun, 25 Aug 2019 20:02:11 GMT
< X-M-Log: QNM:xs1170;QNM3/304
< X-M-Reqid: XWQAALsnTjneF74V
< X-Qnm-Cache: Hit
< Accept-Ranges: bytes
< Last-Modified: Fri, 16 Aug 2019 07:49:40 GMT
< Via: cache28.l2cn1821[0,304-0,H], cache29.l2cn1821[2,0], cache4.cn850[0,200-0,H], cache10.cn850[1,0]
< Ali-Swift-Global-Savetime: 1565951011
< Age: 115494
< X-Cache: HIT TCP_MEM_HIT dirn:11:439342943
< X-Swift-SaveTime: Mon, 26 Aug 2019 00:09:31 GMT
< X-Swift-CacheTime: 86400
< Timing-Allow-Origin: *
< EagleId: 7b35b69e15668314574327095e