国行Android无法在Google商店下载App,分配国内的节点

其他内容

本文最后更新于 2023年8月9日   请注意相关内容可能已过时

在此前的文章中,我曾经提到过,谷歌play是以内置的services.cn.google.xml这个文件来判断是否将App下载的节点分配到中国的IP.

恢复谷歌play商店下载Apps使用国内节点方法

但是最近发现谷歌play似乎给国行的Android设备分配的下载地址是一个新的域名.

xn--ngstr-cn-8za9o.com

转码后为

ångströ-cn.com
Adguard Home抓取到dns解析地址
域名信息查询

但是现在问题来了,由于这个域名大量的节点根本就没有解析,但是谷歌商店仍然给国行的Android分配到这些个域名来作为下载节点.导致目前的国行设备根本无法下载App.目前的唯一解决办法就是删除系统里面的services.cn.google.xml这个文件.(需要root权限)

国行Android分配的下载节点,左图为以前,右图为现在.

如果你的设备在root以后仍然无法该文件,可能原因是没有解锁system分区,可以通过magisk模块的方式删除.

注:近几个月来GFW对大量的谷歌相关域名解除了DNS投毒,所以部分移动和广电相关用户是可以直接通过UDP连接到谷歌的节点.这部分用户的谷歌商店也可以直连下载与更新Apps.

7/19更新:有网友反应,设备上指定 googleapis.cn 这个域名走代理.play商店可能会分配国外的下载节点,下载应该会恢复正常

7/21更新:根据我的测试,只要 services.googleapis.cn 解析的地址是谷歌国外的服务器,那么,Play商店就会把下载节点分配到国外的服务器上.

所以我直接在adguard home 劫持了这个域名.(我这里是通过IP分流的,所以直接劫持到国外的ip就行了,如果使用域名分流的,需要把这个域名设置成代理)

估计影响就是其他的谷歌服务也不会分配到谷歌中国的服务器上了

可以看到分配的域名是ångströ.com

7/29更新:其实不光是ångströ.com新增了cn专用的域名.通过Adguard Home发现有更多的谷歌相关子域名切换到了cn的专属域名 .比如 r2---sn-2x3eenel.gvt1-cn.com r1---sn-2x3een7r.c.2mdn-cn.net 等,还有更多,虽然暂时没有抓取到相关地址,但应该也是同步新部署了cn专用的域名

8/9更新:网友提醒…..现在分配的域名又变成了 ångströ.com ,所以又可以从国内的服务器上正常下载app了

25 个评论在 “国行Android无法在Google商店下载App,分配国内的节点



  1. toorich说道:   Loading   Chrome | 115.0.5790.166 Android 13      IP属地获取中...

    似乎又不会分配到xn--ngstr-cn-8za9o.com了……又变回了xn--ngstr-lra8j.com

  2. 飘在云端说道:   Loading   Chrome | 109.0.0.0 Windows 10     IP属地获取中...

    感谢博主,今天搜索资料发现原来你早就解决这个问题了,我4月份写了一篇关于play下载问题的内容,当时查资料没有你去年发布的文章:https://loukky.com/archives/2153,不然我就能少走弯路了

    https://www.0z.gs/android/2077.html

    我目前比较苦恼的是,根据我现在的日志来看,不同送中节点好像还有区别对待行为,我的测试结果显示(样本数量为3),在日本的送中节点发起下载时,会解析到新的那个国内专用特供下载域名,注意,这个是直接发起的行为,并没有走任何 DNS 解析流程,应该是预置到了GMS服务内,先于 Clash 的 DNS 解析阶段,无法在 fallback-filter 阶段配置域名拦截,让谷歌分配国际版的 play 下载域名,然而这个行为很奇怪,香港送中节点却不会这样,而是走了国际域名,并经过代理正常下载

    日本送中节点关键日志:
    [DNS] services.googleapis.cn –> 180.163.151.34
    我直接??检查分流规则配置,没有问题,就是这么突然,直接请求还得到一个国内被污染 IP,规则是有配置使用境外 DNS 解析的

    1. 我看了下你的内容,其实并没有那么复杂……
      services.googleapis.cn 这个域名,谷歌给国内,国外都有geodns解析…包括很多的谷歌相关域名.国内DNS请求的时候会拿到国内IP,而国外DNS请求的时候会拿到国外的IP.
      根据我的研究,在国行的GMS里面,也就是我说的内置services.cn.google.xml这个文件的谷歌服务.其内置的解析域名是 services.googleapis.cn 而不是 services.googleapis.com ,而 services.googleapis.com 这个域名是没有解析到国内ip的.
      想要谷歌商店给你分配到国际的下载节点,前提就是通过vps来连接 services.googleapis.cn 或者 services.googleapis.com,而这两个域名在国外的解析的ip都是属于国外的.

      至于你贴的
      日本送中节点关键日志:
      [DNS] services.googleapis.cn –> 180.163.151.34
      这个应该是你本地的dns解析得到的ip,然后通过你的本地ip连接了.
      这个ip也不是被污染的.而是谷歌中国部署的节点…
      有什么疑问可以继续回复大家一起讨论

      1. 飘在云端说道:   Loading   Chrome | 109.0.0.0 Windows 10     IP属地获取中...

        之前那个 DNS 问题是我其他环节存在问题,后面排除了,但是效果没什么用,强制使用国外 DNS 解析 services.googleapis.cn 会给到国内的 服务器 IP,有些还是会给我且已经被墙的 IP,点名 8.8.8.8,已经使用 DOT 了
        而且 CFA 始终给我返回国内 IP ,且都是被墙的,当 nameserver 存在时,fallback 完全没起作用

      2. 飘在云端说道:   Loading   Chrome | 109.0.0.0 Windows 10     IP属地获取中...

        测试多个境外 DNS,分配的很多不同 IP 都是被墙的,可能跟地区有关系,懒得折腾了,没什么好的解决办法
        站长工具的超级ping显示有 53 个 IP,services.googleapis.cn,这样来看似乎被墙的IP就会分配这个中国特殊的play域名,因为谷歌目前没有做解析/迁移,只能等了,我懒得折腾了

        1. Clash我不太清楚.平时也不是用的这个,但是Google DNS是支持EDNS的,你通过Google DNS解析 services.googleapis.cn 时,我怀疑走了直连,所以给你返回的CDN IP是国内的.这个域名得由远程服务器去解析,并且附带的子网为国外IP就不会解析到国内的CDN了

          1. 飘在云端说道:   Loading   Chrome | 109.0.0.0 Windows 10     IP属地获取中...

            境外 DNS 解析的 IP 也会有境内的 IP,解析的境外 IP 目前测试都是被墙,境内的 IP 也因谷歌自身原因没做好解析不可用,当然也不知道境内的 IP本身是否有问题,但明显的是,无论分配的是什么 IP, play 直接使用 中国特供版的域名请求下载

            这个现象在非香港地区的送中IP稳定复现,原因不明

            香港地区送中 IP,在将 services.google.cn 强制境外 DNS 解析后能正常下载 Play 应用

            1. 那么你有没有测试过用非香港地区的送中IP解析services.google.cn得到的是国内还是国外的ip?有在vps上面测试过吗?

  3. madoka说道:   Loading   Chrome | 114.0.0.0 Google Chrome OS      IP属地获取中...

    最近遇到了这个问题,搜到博主的文章,检查一下路由器后发现我以前用的是Redir-Host没遇到这个问题,最近换成fake-ip之后由于在openclash开启了绕过大陆ip,导致xn--ngstr-cn-8za9o.com被直接bypass了,后来想起之前是能正常下载的,于是把绕过大陆ip关了,再加上xn--ngstr-cn-8za9o.com的代理规则,这下play商店终于可以下载了。

    1. 文章更新了,不用那么麻烦,临时的解决办法,直接劫持 services.googleapis.cn 到国外的ip,或者把这个域名加入到代理规则里面.

  4. 各位老哥ångströ-cn.com是怎么转换成xn--ngstr-cn-8za9o.com的,有什么工具吗

  5. toorich说道:   Loading   Chrome | 114.0.5735.196 Android 13      IP属地获取中...

    不刷机有啥办法吗,手机没解锁也就没法root,解锁需要清除手机所有数据,现在手机里有差不多300G,备份再恢复太麻烦了

    1. 如果是国行Android而且还没有解锁root的话,估计是没有什么办法!毕竟下载节点是由谷歌play分配的,用户没法控制.
      但是这种情况应该不会持续很长…..
      或者使用DNS把这些域名劫持到谷歌国内的节点(只是想法,实际我也没有测试过)

      1. 劫持的话我已经用AdGuard Home试过了(将对应的*.xn--ngstr-cn-8za9o.com使用DNS重写定向到*.xn--ngstr-lra8j.com),结果是证书错误

        1. 那是因为这些服务器上面还没有配置这个新域名的证书,得等谷歌那边处理。
          完全搞不懂谷歌怎么会在服务器都还没有部署好的时候就把流量切过去了

        2. 有个好消息和坏消息.
          好消息是 ångströ-cn.com 似乎已经解析到谷歌中国了,坏消息是其子域名仍然没有解析.

          1. toorich说道:   Loading   Chrome | 108.0.5359.128 Android 10      IP属地获取中...

            您后面更新的这种方法我试了一下,似乎有的仍然返回xn--ngstr-cn-8za9o.com下的结果(例如2404:6800:4008::/48下的IP)

              1. 对啊……所以应该不止谷歌中国IP那么简单了……

                  1. toorich说道:   Loading   Chrome | 114.0.5735.196 Android 13      IP属地获取中...

                    就是因为连接的是国外机房才奇怪呢,我甚至有点怀疑您是把全局的DNS接到了您的AdGuard Home上,实际流量还是走的代理……

                    1. 你要看明白我是怎么做的,我在设备上是通过ip来分流的,所有的国外的ip都是走出国的流量…而现在由于谷歌那边的问题,谷歌play中国的下载服务器实际上是用不了的,所以我在Adguard home上面把services.googleapis.cn解析到国外.这样当设备请求这个域名的时候,拿到的ip是国外的ip,然后就会走出国的流量,连接到国外的谷歌节点.这样就会给谷歌商店分配一个国外的下载节点.才能正常的下载..这就是所有的流程,你把流程搞清楚了就知道这样做的原因了.你用其他的工具也是一样的,只要理解了原因,其他的不同软件道理是一样的.

                    2. 好吧……我以为您是从国内直连谷歌国外节点……

发表评论

邮箱地址不会被公开。 必填项已用*标注