最近发现我的手机在连着位于 linode 的 VPN 的时候,打开 Apple App Store 的 app 时会提示 cannot connect to app store。然而另一个位于 vultr 的 VPN 却没有任何问题,而两个 VPN 的服务器端设置完全一样。
尝试过将 linode 的服务器更换 IP,以及换去其他机房,均无法解决问题。怀疑是设置问题,于是把 vultr 服务器整个打包,复制到 linode 再还原覆盖原系统,可是问题依旧。
由于其他网页打开均没有问题,尝试 tcpdump 却没有头绪,只能发现当连接 linode 上的 VPN 后,app store 的连接请求变得非常少,看起来是在连接某个服务器获得数据后停止了继续请求其他数据。mitmproxy 也因为 app store 采用了 HPKP 而无法查看加密流量,所以无法得知确切的问题。
期间也给 linode 发过工单,询问是否有可能是 linode 屏蔽了某些流量或者是 Apple 屏蔽了某些 linode IP。然而 linode 回复说这不属于他们的支持范围,只是说可能是我的 VPN 不支持 IPv6 导致。
顺着 linode 的思路,确认我的 VPN 确实支持 IPv6 后,仍然不能解决问题,于是只能靠自己继续挖掘。
之后偶然想到 Apple app store 其实有网页版,用来 debug 会方便很多。在比较了连接 VPN 前后访问 app store 的请求后发现,当连接 linode 上的 VPN 后再访问 app store,会在访问一个位于 https://amp-api.apps.apple.com 的 url 时收到 503 错误,并导致无法打开 app store 页面。
于是尝试直接在 linode 服务器上访问这个网站。
在服务器上使用 w3m 访问一个任意的 app store 页面以便获得 cookies,比如 https://apps.apple.com/us/app/google-chrome/id535886823
,之后再访问 https://amp-api.apps.apple.com
后会发现服务器会很快返回一个 503 错误。
同样的操作在 vultr 则会收到一个 302 跳转。
由于在 linode 上的操作所访问的 https://amp-api.apps.apple.com 的服务器 IP 和在 vultr 上访问的服务器 IP 相同,并且在 linode 上的操作会 100% 导致 503 错误,而 vultr 则 100% 会收到 302 跳转,我有理由相信是 Apple 对 linode 的 IP 进行了屏蔽。
由于 https://amp-api.apps.apple.com 采用了 Akamai 的 CDN,或许应该说是 Akamai 屏蔽了 linode 的 IP。而且由于多次尝试更换 linode 服务器 IP 以及机房均无法连接,我也可以认为大部分甚至是全部 linode IP 均受到影响。
再次发工单至 linode 说明情况,却再次收到不属于支持范围的回复。
之前一直很满意 linode 的客服和技术支持,但不得不说这次比较失望。作为一个服务器提供商,IP 被一个大型 CDN 提供商大面积屏蔽,居然可以如此简单又心安理得的说不属于支持范围,有点心凉。
Update: 12/03/2021
闲着无聊搜了一下这个问题看有没有人遇到相同的,结果看到 https://www.linode.com/community/questions/18977/app-store-blocked 发现应该是在今年 2 月的时候被修复了。不过我也懒得试了。
我也遇到了同样的问题,莫得办法
我的hostdare梯子也是这个问题 没办法
我的hostdare也是,而且为此发工单换了ip,新换的ip还是这样