飘在云端

东西南北,海角天涯

· Android · · 435次浏览

彻底修复送中节点 Google Play Store 应用市场 卡下载进度条问题

请自行排除 Play Store 缓存数据、权限问题,本文不科普送中节点含义,可自行在文章参考资料寻找

开箱即用版:使用这个订阅地址转换 https://api-sub.0z.gs/
选择 基础模式 或者 进阶模式里面的 标准 远程配置文件
转换订阅后,可以使用送中节点测试效果


测试环境:小米国行手机,MIUI 13,Clash for android v2.5.12 premium 使用的是国内特供版 GMS

Clash 仅代理 Google Play Store

本文只针对如下场景,使用被谷歌 IP 数据库标记为中国大陆的节点下载 Play 商店应用,会长时间无反应,无法下载、卡进度条问题

换一个没送中的节点就能正常下载
或者使用送中节点卡进度条后,断开梯子,使用本地网络直连就能下载的情况

原因是国内产商装的 GMS 有些限制,详见:https://github.com/fei-ke/unlock-cn-gms

国行 GMS 手机,使用送中节点下载会向 xxxx.xn--ngstr-lra8j.com 这个域名请求下载
做了如下测试

1、使用送中香港 IP 节点
Clash 全局,分应用代理 Google Play Store,无法正常下载
请求,rr2---sn-ni57rn7k.xn--ngstr-lra8j.com
分配 IP
180.163.150.131

查询这个域名,发现子域名太多了,IP 也是乱七八糟的

https://cdn.0z.gs/2023/04/22/644352e936da4.jpg

测试 DNS 解析,境内外均指向了 上海电信的 IP

https://cdn.0z.gs/2023/04/22/6443536db2e7b.jpg

2、另一个送中香港 IP,全局代理,下载,卡下载进度条后,切到直连,能恢复正常下载,并且走国内网络直连,速率 500 Mbps+,抓取日志
恢复到本地直连网络后,发现请求 rr4---sn-j5o76n7l.xn--ngstr-lra8j.com:443
58.63.223.69 广州电信 AS4134

3、使用没送中节点下载,则能正常代理并使用节点进行下载

请求 rr3---sn-i3b7kn6s.xn--ngstr-lra8j.com

该域名解析的 IP 已被墙

请输入图片描述

根据测试结果,还有一些参考到的资料:

https://www.v2ex.com/t/696735
https://www.v2ex.com/t/838835
https://www.v2ex.com/t/831254

推断出谷歌行为,送中节点下载应用,因为被谷歌 IP 数据标记为中国大陆,谷歌会给你分配中国大陆上面的谷歌服务器,但因为谷歌退出了中国,可能长时间无人维护,在具体的真正下载域名 xxxxxx.xn--ngstr-lra8j.com 时,前面还有一些的其他请求数据交互,前面的那些请求中,部分域名是需要被代理,数据交互认证之类,才能真正的使用本地网络直连下载,

这也与送中节点进到应用下载界面,直接关掉梯子使用本地网络下载会失败相符合
必须开着梯子去开始下载,完成一些其他需要被代理的域名的请求,才能开始使用本地网络直连下载,具体表现为

开着送中节点去下载,卡进度体后,断开梯子,秒恢复正常下载 相符合

这时就有了解决方案

把谷歌前置的需要被代理域名提取出来,将其放入 clash 的代理策略,并把需要直连的域名也提取出来

这样就实现了任意节点(无论是否送中),只要能访问浏览 Google Play 商店,就能下载应用(高速,实测谷歌大陆的服务器能跑满 500 Mbps +),还不用浪费梯子流量

需要保证强制直连的域名:

DOMAIN-SUFFIX,265.com
DOMAIN-SUFFIX,2mdn.net
DOMAIN-SUFFIX,alt1-mtalk.google.com
DOMAIN-SUFFIX,alt2-mtalk.google.com
DOMAIN-SUFFIX,alt3-mtalk.google.com
DOMAIN-SUFFIX,alt4-mtalk.google.com
DOMAIN-SUFFIX,alt5-mtalk.google.com
DOMAIN-SUFFIX,alt6-mtalk.google.com
DOMAIN-SUFFIX,alt7-mtalk.google.com
DOMAIN-SUFFIX,alt8-mtalk.google.com
DOMAIN-SUFFIX,app-measurement.com
DOMAIN-SUFFIX,beacons.gcp.gvt2.com
DOMAIN-SUFFIX,beacons.gvt2.com
DOMAIN-SUFFIX,beacons3.gvt2.com
DOMAIN-SUFFIX,android.clients.google.com
DOMAIN-SUFFIX,checkin.gstatic.com
DOMAIN-SUFFIX,clientservices.googleapis.com
DOMAIN-SUFFIX,connectivitycheck.gstatic.com
DOMAIN-SUFFIX,imasdk.googleapis.com
DOMAIN-SUFFIX,redirector.gvt1.com
DOMAIN-SUFFIX,cache.pack.google.com
DOMAIN-SUFFIX,clickserve.dartsearch.net
DOMAIN-SUFFIX,crl.pki.goog
DOMAIN-SUFFIX,dl.google.com
DOMAIN-SUFFIX,dl.l.google.com
DOMAIN-SUFFIX,googletagmanager.com
DOMAIN-SUFFIX,googletagservices.com
DOMAIN-SUFFIX,gtm.oasisfeng.com
DOMAIN-SUFFIX,mtalk.google.com
DOMAIN-SUFFIX,ocsp.pki.goog
DOMAIN-SUFFIX,recaptcha.net
DOMAIN-SUFFIX,safebrowsing-cache.google.com
DOMAIN-SUFFIX,settings.crashlytics.com
DOMAIN-SUFFIX,ssl-google-analytics.l.google.com
DOMAIN-SUFFIX,toolbarqueries.google.com
DOMAIN-SUFFIX,tools.l.google.com
DOMAIN-SUFFIX,www-googletagmanager.l.google.com
DOMAIN-SUFFIX,ssl.gstatic.com
DOMAIN-SUFFIX,update.googleapis.com
DOMAIN-SUFFIX,www.gstatic.com

需要保证强制代理的域名:

# Google
# 内容:Google
# 数量:24条
DOMAIN-KEYWORD,gmail
#DOMAIN-KEYWORD,google
DOMAIN-SUFFIX,1e100.net
DOMAIN-SUFFIX,2mdn.net
DOMAIN-SUFFIX,app-measurement.net
DOMAIN-SUFFIX,g.co
DOMAIN-SUFFIX,ggpht.com
DOMAIN-SUFFIX,goo.gl
DOMAIN-SUFFIX,googleapis.cn
DOMAIN-SUFFIX,googleapis.com
DOMAIN-SUFFIX,gstatic.cn
DOMAIN-SUFFIX,gstatic.com
DOMAIN-SUFFIX,gvt0.com
DOMAIN-SUFFIX,gvt1.com
DOMAIN-SUFFIX,gvt2.com
DOMAIN-SUFFIX,gvt3.com
#DOMAIN-SUFFIX,xn--ngstr-lra8j.com
DOMAIN-SUFFIX,youtu.be
DOMAIN-SUFFIX,youtube-nocookie.com
DOMAIN-SUFFIX,youtube.com
DOMAIN-SUFFIX,yt.be
DOMAIN-SUFFIX,ytimg.com
IP-CIDR,74.125.0.0/16,no-resolve
IP-CIDR,173.194.0.0/16,no-resolve

请自行排查注意这些分流规则的优先级,不要被其他分流规则覆盖、影响到

这样就能使用所有节点去访问 Google Play 商店,并还能通过国内网络高速下载应用

成功效果,使用送中节点测试:

# Capture on 2023-04-22 12:20:21.133
12:20:21.138    Info: [APP] Logcat level: debug
12:20:25.717    Info: [TCP] 172.19.0.1:59806 --> connectivitycheck.gstatic.com:443 match DomainSuffix(connectivitycheck.gstatic.com) using DIRECT
12:20:26.824   Debug: [DNS] services.googleapis.cn --> 58.254.137.162
12:20:26.824   Debug: [DNS] services.googleapis.cn --> 58.254.137.162
12:20:26.825    Info: [UDP] 172.19.0.1:36493 --> services.googleapis.cn:443 match DomainSuffix(cn) using 国内[DIRECT]
12:20:26.841    Info: [TCP] 172.19.0.1:42774 --> services.googleapis.cn:443 match DomainSuffix(cn) using 国内[DIRECT]
12:20:27.244   Debug: [DNS] rr4---sn-j5o76n7z.xn--ngstr-lra8j.com --> 58.254.149.197
12:20:27.244   Debug: [DNS] rr4---sn-j5o76n7z.xn--ngstr-lra8j.com --> 58.254.149.197
12:20:27.245    Info: [UDP] 172.19.0.1:45282 --> rr4---sn-j5o76n7z.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:27.262    Info: [TCP] 172.19.0.1:36968 --> rr4---sn-j5o76n7z.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:27.743   Debug: [DNS] rr3---sn-j5o7dn7s.xn--ngstr-lra8j.com --> 58.254.137.196
12:20:27.744   Debug: [DNS] rr3---sn-j5o7dn7s.xn--ngstr-lra8j.com --> 58.254.137.196
12:20:27.744    Info: [UDP] 172.19.0.1:37841 --> rr3---sn-j5o7dn7s.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:27.764    Info: [TCP] 172.19.0.1:52628 --> rr3---sn-j5o7dn7s.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:28.706   Debug: [DNS] rr1---sn-j5o76n7s.xn--ngstr-lra8j.com --> 58.254.137.130
12:20:28.732    Info: [TCP] 172.19.0.1:59552 --> rr1---sn-j5o76n7s.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:29.260   Debug: [DNS] rr2---sn-j5o76n7z.xn--ngstr-lra8j.com --> 58.254.149.195
12:20:29.261   Debug: [DNS] rr2---sn-j5o76n7z.xn--ngstr-lra8j.com --> 58.254.149.195
12:20:29.261    Info: [UDP] 172.19.0.1:38239 --> rr2---sn-j5o76n7z.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:29.281    Info: [TCP] 172.19.0.1:60214 --> rr2---sn-j5o76n7z.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:29.496   Debug: [DNS] rr1---sn-j5o76n7s.xn--ngstr-lra8j.com --> 58.254.137.130
12:20:29.496   Debug: [DNS] rr1---sn-j5o76n7s.xn--ngstr-lra8j.com --> 58.254.137.130
12:20:29.496    Info: [UDP] 172.19.0.1:52591 --> rr1---sn-j5o76n7s.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:29.522    Info: [TCP] 172.19.0.1:59584 --> rr1---sn-j5o76n7s.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:29.854   Debug: [DNS] rr1---sn-j5o76n7s.xn--ngstr-lra8j.com --> 58.254.137.130
12:20:29.872    Info: [TCP] 172.19.0.1:59590 --> rr1---sn-j5o76n7s.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:30.150   Debug: [DNS] play.googleapis.com --> 172.217.14.74
12:20:30.179    Info: [TCP] 172.19.0.1:38840 --> play.googleapis.com:443 match DomainSuffix(googleapis.com) using 国外[🇭🇰 广港-IEPL]
12:20:30.372   Debug: [DNS] rr1---sn-j5o76n7z.xn--ngstr-lra8j.com --> 58.254.149.194
12:20:30.372   Debug: [DNS] rr1---sn-j5o76n7z.xn--ngstr-lra8j.com --> 58.254.149.194
12:20:30.373    Info: [UDP] 172.19.0.1:45520 --> rr1---sn-j5o76n7z.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:30.391    Info: [TCP] 172.19.0.1:33680 --> rr1---sn-j5o76n7z.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:30.451   Debug: [DNS] play.googleapis.com --> 142.250.72.234
12:20:30.479    Info: [TCP] 172.19.0.1:38866 --> play.googleapis.com:443 match DomainSuffix(googleapis.com) using 国外[🇭🇰 广港-IEPL]
12:20:30.959   Debug: [DNS] rr3---sn-j5o76n7s.xn--ngstr-lra8j.com --> 58.254.137.132
12:20:30.978    Info: [TCP] 172.19.0.1:35092 --> rr3---sn-j5o76n7s.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:31.484   Debug: [DNS] rr4---sn-j5o7dn7z.xn--ngstr-lra8j.com --> 58.254.149.133
12:20:31.484   Debug: [DNS] rr4---sn-j5o7dn7z.xn--ngstr-lra8j.com --> 58.254.149.133
12:20:31.485    Info: [UDP] 172.19.0.1:33278 --> rr4---sn-j5o7dn7z.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:31.511    Info: [TCP] 172.19.0.1:60494 --> rr4---sn-j5o7dn7z.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:32.760   Debug: [DNS] rr2---sn-j5o7dn7z.xn--ngstr-lra8j.com --> 58.254.149.131
12:20:32.761   Debug: [DNS] rr2---sn-j5o7dn7z.xn--ngstr-lra8j.com --> 58.254.149.131
12:20:32.762    Info: [UDP] 172.19.0.1:40878 --> rr2---sn-j5o7dn7z.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:32.782    Info: [TCP] 172.19.0.1:51764 --> rr2---sn-j5o7dn7z.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:33.253   Debug: [DNS] rr3---sn-j5o76n7s.xn--ngstr-lra8j.com --> 58.254.137.132
12:20:33.254   Debug: [DNS] rr3---sn-j5o76n7s.xn--ngstr-lra8j.com --> 58.254.137.132
12:20:33.254    Info: [UDP] 172.19.0.1:40162 --> rr3---sn-j5o76n7s.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:33.276    Info: [TCP] 172.19.0.1:35146 --> rr3---sn-j5o76n7s.xn--ngstr-lra8j.com:443 match IPCIDR(58.240.0.0/12) using 国内[DIRECT]
12:20:34.960    Info: [APP] request force GC

根据初步测试成功的日志,我上面写的分流规则还是范围大了一点,应该可以优化成

代理

DOMAIN,play.googleapis.com

直连

DOMAIN,services.googleapis.cn
DOMAIN,connectivitycheck.gstatic.com

然后 xn--ngstr-lra8j.com 这个域名不要进行基于域名的规则处理,让谷歌自己返回的子域名进行解析,得到是国外的或者国内的IP,再进行匹配

具体懒得测试了,反正目前是没问题了

鸣谢 ACL4SSR 项目组收集的谷歌中国大陆、国际相关域名和IP

https://github.com/ACL4SSR/ACL4SSR
评论 (2条)
  1. huluobo

    有没有可用的Clash配置链接推荐 想用GPT

    回复
    1. 量子涨落 博主
      @huluobo

      每月 35 CNY +,接受吗

      回复