Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android平台使用问题 #162

Closed
happy-proxy opened this issue Jul 28, 2019 · 58 comments
Closed

Android平台使用问题 #162

happy-proxy opened this issue Jul 28, 2019 · 58 comments

Comments

@happy-proxy
Copy link

  1. 使用方法
    目前在Android端一直使用pac全局的方式(服务端为docker版本),可以运行,但是这个方式容易出现一些奇怪的网络问题,而且蜂窝数据还要改APN,略麻烦。之前研究过使用Android端clash(就是clashA)进行代理的方法,一直不通。这两天有时间继续倒弄一下,查看了pac文件,里面有19个域名和IP,全部转换成clash的规则,结果Android端云音乐(6.3.0)仍然无效。规则如下:(额外多加了一条126的规则)

  2. 部分歌曲的匹配问题
    https://music.163.com/#/song?id=406737702&userid=186057
    以上面这首歌为例,Mac端使用surge代理,白嫖QQ的资源非原版,是一个现场版。如下:

[406737702] 生活因你而火热,
http://isure.stream.qqmusic.qq.com/M500000RnJHv2JORtS.mp3?vkey=2CFF7D024644E877E7C447424B0F236FDD0B4B7FDC1038F1F3D93BA55814B143F2D46A639ABD6CB9C293645C53D84D631B03A3B305F2A1E9&uin=0&fromtag=8&guid=7332953645

  1. 资源匹配的一个小好奇(非问题)
    从周杰伦的资源匹配来看,有的是走的网易自己的服务器(我是黑胶会员),有的是白嫖QQ的,好奇这个匹配有什么规则吗?

谢谢。

@nondanee
Copy link
Owner

  1. 去找那种可以分应用代理的 VPN 试试看,之前看到说好像 Xndroid 可以
    参考 👉 https://www.moerats.com/archives/938/ 最后
  2. QQ 那边搜索结果是这样的,目前没有匹配规则,取结果第一条
    https://y.qq.com/portal/search.html#page=1&searchid=1&remoteplace=txt.yqq.top&t=song&w=生活因你而火热%20-%20新裤子
  3. 匹配过程没有用用户 cookie,所以和你是不是黑胶没有关系
    之前默认匹配规则是 netease qq xiami baidu,顺序为优先级
    如果网易自己有就走网易自己的服务器,没有的话就 QQ,还没有的话再往后

现在(昨天起还是今天起)网易自己的炸了 #30 (comment)
虾米一直有问题 #30 (comment)
百度版权少
QQ 只有 128k
酷我酷狗咪咕还好
你自己改一下 -o

@happy-proxy
Copy link
Author

@nondanee

  1. 伤心,看来Android平台暂时没辙了,其实目的就是把代理网易云集成到常规代理中,反正也要24小时开着科学上网。专门为网易云弄一套有点麻烦且不太必要,这样不如去装那个xposed插件更一劳永逸些。无奈Android木有类似surge那样强大的软件,clash暂时也差点意思。

  2. 原来是这样匹配的呀,了解了。

@nondanee
Copy link
Owner

@iDesperad0
那你可以用 goproxy 转成 ss 协议
参考 👉 https://www.lajiblog.com/index.php/archives/4/

@happy-proxy
Copy link
Author

happy-proxy commented Jul 29, 2019

@nondanee
看了一下这个方案,好像和上一个方案本质差不太多,都需要专门开一个支持分应用代理的VPN才行,但是我现在科学上网主用clashA,没法同时运行两个VPN服务的。
PS:感觉那些老牌的非surge类(不是基于规则判定代理)的ss/ssr客户端已经过时了😂。

@nondanee
Copy link
Owner

@nondanee
好吧... (如果 PAC 规则代理不到,就只能分应用代理了
你说 xposed?那你是 root 了?还是说太极
如果 root 了的话直接把请求的 https 开关关掉再试试 clash 代理
P.S. *.music.126.net 不用过代理

@happy-proxy
Copy link
Author

happy-proxy commented Jul 29, 2019

@nondanee Android平台行不通也可能是因为clashA不支持user-agent规则吧,iOS端都要有这一条,Mac端有独有的processname规则,Android在这方面还是差iOS一大截。

我没root,我说的是太极那个,其实也挺麻烦的,要是代理能用的话不想折腾那个,毕竟统一都走服务器里的docker,简直强迫症福利。

root了有何不同吗?

@nondanee
Copy link
Owner

@iDesperad0
emmm 之前 root 了可以用 adb 打开网易云的开发者模式,把 https 开关关掉就可以直接 MITM 了
没代理到主要是因为请求的是 IP 没拦到 #137 (comment)
不过我刚才试了下已经没用了,/enhance/player/url/v1 直接走 https,开关无效

@happy-proxy
Copy link
Author

@nondanee
请求的IP没拦到?那是不是可以这么干,我从log中把云音乐安卓端请求的IP或者域名全部加入到代理规则中,这样应该就能拦截到了吧?

@nondanee
Copy link
Owner

现在要加到 hook host 里才行……

@happy-proxy
Copy link
Author

@nondanee
哈?hook host又是啥...
那就是不行呗,我想简单了

nondanee added a commit that referenced this issue Jul 29, 2019
@nondanee
Copy link
Owner

哦现在应该可以了,你把 IP 都加进来看看吧

@happy-proxy
Copy link
Author

@nondanee
正在搜集域名和IP规则,顺便问一句,docker版本是需要打开8080和8081两个端口还是8080一个就好了?

@nondanee
Copy link
Owner

@iDesperad0
给安卓用的话无所谓了
安卓最新版可能加了证书校验吧
启用了 8081 是非法证书降级 http,不启用是空数据降级,都是降级 http ,没区别

@happy-proxy
Copy link
Author

@nondanee
服务端版本:0.17.0(docker),8080和8081端口
云音乐版本:6.3.0

搜集了半天,WiFi使用下发现多了5个域名和IP,转换成规则,如图:

结果歌曲还是灰色的

新发现:把APP降级成4.3.1(最后一个play版),可以使用了,但是登陆后歌曲又变成灰色了

@happy-proxy
Copy link
Author

happy-proxy commented Jul 30, 2019

@nondanee
更新:刚才用了一个更极端的方法测试,把代理设为全局,然后都走docker上的http服务,结果歌曲还是灰的,这个方式已经接近类似全局pac的方式(用clash接管全局流量,手机上的所有流量全都走unblock代理),所以好像和是否拦截的到已经没有关系了,而是新版Android客户端的特殊性造成的?

@nondanee
Copy link
Owner

如果 WLAN 代理可用就不是客户端的问题了
哦那也可能是 clash 代理的实现问题
比如全部用 tunnel #45,或者自己做了 dns resolved #91 (comment) 之类的事情
clash 规则太复杂了,不想看=.=
要不你发一份给我,我测测

@happy-proxy
Copy link
Author

happy-proxy commented Jul 31, 2019

@nondanee
嗯,我弄了一个专门针对云音乐的clash配置,已经大幅简化过了,发给你试试,这个:
unblockNeteaseMusic_test.yaml.zip(更新第二版,只有云音乐一个代理)

我刚刚在Mac端的clashX上测试过,运行良好,可以播放
Android平台使用的是clashA,歌曲仍然是灰色的(下载clashA

@happy-proxy
Copy link
Author

happy-proxy commented Aug 3, 2019

@nondanee
更新:发现clashA的代理模式(非VPNservice)居然可以使用!感觉问题就在这个VPNservice模式上了。

PS:另外发现把证书删掉使用clashA的代理模式和全局pac都不影响使用。

PPS:大佬!快回来啊!搞好这个VPNservice,你就功德圆满啦!

......手残,刚才误触点关闭了。

@shugo-chara
Copy link

android上用终端+Xndroid一直是可以正常使用的。Xndroid可以替换成任意一个支持分代的app。

@happy-proxy
Copy link
Author

happy-proxy commented Aug 4, 2019

@shugo-chara
xndroid用过,感觉bug好多诶😅,而且Android上面支持http代理且支持分代的APP真的好少。另外我不也太喜欢“分应用代理”这个东西,感觉又过时又麻烦😂。既然选择了clash,不就是看中了它通过规则判定代理的这个功能吗。

nondanee added a commit that referenced this issue Aug 4, 2019
@nondanee
Copy link
Owner

nondanee commented Aug 4, 2019

@iDesperad0
试下 master 版本,我测试是可以了
Android 客户端版本 6.3
测试用的 Rule 是全局的
image
(因为 mode: Global 这样完全没效果=.=)

原因是 IP 没拦到
尤其是 115.236.118.33 这个 #22 (comment)
抓包看了下发现 httpdns 已经改用 v2 了
v2 的返回值里就有那个 IP

@happy-proxy
Copy link
Author

@nondanee
master版本,经测试,代理规则要多加这两条:

  • IP-CIDR,101.71.154.241/32,UnblockNeteaseMusic
  • IP-CIDR,115.236.118.33/32,UnblockNeteaseMusic

终于,可以运行了😢,此时眼角已泛泪,Android版真的好机车!

PS:docker版是不是要等release后才会更新?

@nondanee
Copy link
Owner

nondanee commented Aug 4, 2019


是的要等 release

@nondanee nondanee closed this as completed Aug 4, 2019
@happy-proxy
Copy link
Author

@shugo-chara
我就是在家里的服务器上开个docker运行(不用docker也行),更新超级方便。使用公网IP供外网访问,简单且没什么成本。专门为这个服务买一个国内的vps有点不太划算,毕竟国内的vps性价比太低了。

@shugo-chara
Copy link

@iDesperad0 对啊。一个人用的话确实有些肉疼。不买吧又没得用更难受。只能慢慢找合适的vps了。

@ghost
Copy link

ghost commented Aug 13, 2019

@iDesperad0 你好,我使用了你的规则,在安卓的clash还是无法使用,是有新的规则了吗?

@happy-proxy
Copy link
Author

happy-proxy commented Aug 13, 2019

@Atroc-0625
请看这个#162 (comment)

PS:126那条不需要,可以去掉

@ghost
Copy link

ghost commented Aug 13, 2019

@iDesperad0 你好,我去除了,歌曲可以点亮,但是提示:无法缓冲歌曲,请检查网络。
那两条我已经添加了。

@ghost
Copy link

ghost commented Aug 13, 2019

@iDesperad0 你好,已经好了,要加入
DOMAIN-SUFFIX,isure.stream.qqmusic.qq.com,,UnblockNeteaseMusic

@happy-proxy
Copy link
Author

@Atroc-0625 额?并不需要这条呀,你把你的clash配置发过来看看

@ghost
Copy link

ghost commented Aug 13, 2019

@iDesperad0

> UnblockNeteaseMusic

DOMAIN-SUFFIX,music.163.com,🎧 UblockMusic
DOMAIN-SUFFIX,interface.music.163.com,🎧 UblockMusic
DOMAIN-SUFFIX,interface3.music.163.com,🎧 UblockMusic
DOMAIN-SUFFIX,apm.music.163.com,🎧 UblockMusic
DOMAIN-SUFFIX,apm3.music.163.com,🎧 UblockMusic
DOMAIN-SUFFIX,man.netease.com,🎧 UblockMusic
DOMAIN-SUFFIX,api.iplay.163.com,🎧 UblockMusic
IP-CIDR,59.111.181.60/32,🎧 UblockMusic
IP-CIDR,223.252.199.66/32,🎧 UblockMusic
IP-CIDR,223.252.199.67/32,🎧 UblockMusic
IP-CIDR,59.111.160.195/32,🎧 UblockMusic
IP-CIDR,59.111.160.197/32,🎧 UblockMusic
IP-CIDR,59.111.181.35/32,🎧 UblockMusic
IP-CIDR,59.111.181.38/32,🎧 UblockMusic
IP-CIDR,39.105.63.80/32,🎧 UblockMusic
IP-CIDR,47.100.127.239/32,🎧 UblockMusic
IP-CIDR,118.24.63.156/32,🎧 UblockMusic
IP-CIDR,193.112.159.225/32,🎧 UblockMusic
IP-CIDR,59.111.181.155/32,🎧 UblockMusic
IP-CIDR,115.236.118.33/32,🎧 UblockMusic
DOMAIN-SUFFIX,ac.dun.163yun.com,🎧 UblockMusic
DOMAIN-SUFFIX,mr.da.netease.com,🎧 UblockMusic
DOMAIN-SUFFIX,crash.163.com,🎧 UblockMusic
IP-CIDR,101.71.154.241/32,🎧 UblockMusic
DOMAIN-SUFFIX,imap.163.com,🎧 UblockMusic
DOMAIN-SUFFIX,isure.stream.qqmusic.qq.com,🎧 UblockMusic

@happy-proxy
Copy link
Author

@Atroc-0625

DOMAIN-SUFFIX,ac.dun.163yun.com,🎧 UblockMusic
DOMAIN-SUFFIX,mr.da.netease.com,🎧 UblockMusic
DOMAIN-SUFFIX,crash.163.com,🎧 UblockMusic
DOMAIN-SUFFIX,imap.163.com,🎧 UblockMusic
DOMAIN-SUFFIX,isure.stream.qqmusic.qq.com,🎧 UblockMusic

上面这些应该都是不需要的,给你看看我现在的这个:

你是不是同时还开着其他的服务,譬如去广告,科学上网什么的

@ghost
Copy link

ghost commented Aug 13, 2019

@iDesperad0 是的,科学上网跟adblock,可以把你的规则文本发给我一下,我也更新一下,捡大佬的便宜

@happy-proxy
Copy link
Author

@Atroc-0625
我的规则就是这个:https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml
把解锁网易云的规则写在最上面的自定义下就行
另外根据我之前踩过的坑,很多去广告的规则会对“.163.com“后缀的域名进行拦截,所以建议你暂时关闭其他服务,排除法试一试,上面这套规则应该完全没问题的

@nondanee
Copy link
Owner

@Atroc-0625
应该不需要这条

DOMAIN-SUFFIX,isure.stream.qqmusic.qq.com,UnblockNeteaseMusic

音源不用过代理的,直连就行了,过代理反而慢(当然走代理也行)

@ghost
Copy link

ghost commented Aug 13, 2019

@nondanee 我这边,不代理无法使用,我估计是网易云音乐版本的问题,我还在排查中

@ghost
Copy link

ghost commented Aug 13, 2019

@iDesperad0 好的,谢谢,正在排查是不是网易云音乐版本的问题。

lizeyan pushed a commit to lizeyan/UnblockNeteaseMusic that referenced this issue Sep 10, 2019
lizeyan pushed a commit to lizeyan/UnblockNeteaseMusic that referenced this issue Sep 10, 2019
@ghost
Copy link

ghost commented Oct 31, 2019

本地的代理放到clashA里好像不行,依旧是灰色的。。。

@happy-proxy
Copy link
Author

#162 (comment)
这些规则都添加进去了吗?看一下log。

@ghost
Copy link

ghost commented Nov 2, 2019

改加的都加了,另外我是在termux 代理本地,是不是这个不行。

@ghost
Copy link

ghost commented Nov 2, 2019

试了非本地也不行

@xiaoxin0
Copy link

xiaoxin0 commented Nov 3, 2019

@Atroc-0625
我的规则就是这个:https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml
把解锁网易云的规则写在最上面的自定义下就行
另外根据我之前踩过的坑,很多去广告的规则会对“.163.com“后缀的域名进行拦截,所以建议你暂时关闭其他服务,排除法试一试,上面这套规则应该完全没问题的

你好,我已经看了好几遍这个,有一点疑惑:
1.大佬你的规则https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml 这个里面是不包含解锁网易云的对吗?PS:这个规则是神机的吗?感觉有点像?
2.#162 (comment) 这个回复的规则,我写到配置里是这样的:

port: 7890

socks-port: 7891

allow-lan: false

mode: Rule

log-level: info

external-controller: 127.0.0.1:9090

dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
nameserver:

  • 119.29.29.29
  • 223.5.5.5

Proxy:

  • { name: "Unblock", type: ss, server: xxxxxxx, port: xxxxxxx, cipher: chacha20-ietf, password: "xxxxxxx" }

Proxy Group:

  • { name: "UnblockNeteaseMusic", type: select, proxies: [ "Unblock", "DIRECT" ] }

Rule:

Unblock Netease Music

#自定义规则 ##您可以在此处插入您补充的自定义规则

  • DOMAIN-SUFFIX,music.163.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,interface.music.163.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,interface3.music.163.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,apm.music.163.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,apm3.music.163.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,man.netease.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,api.iplay.163.com,UnblockNeteaseMusic
  • IP-CIDR,59.111.181.60/32,UnblockNeteaseMusic
  • IP-CIDR,223.252.199.66/32,UnblockNeteaseMusic
  • IP-CIDR,223.252.199.67/32,UnblockNeteaseMusic
  • IP-CIDR,59.111.160.195/32,UnblockNeteaseMusic
  • IP-CIDR,59.111.160.197/32,UnblockNeteaseMusic
  • IP-CIDR,59.111.181.35/32,UnblockNeteaseMusic
  • IP-CIDR,59.111.181.38/32,UnblockNeteaseMusic
  • IP-CIDR,39.105.63.80/32,UnblockNeteaseMusic
  • IP-CIDR,47.100.127.239/32,UnblockNeteaseMusic
  • IP-CIDR,118.24.63.156/32,UnblockNeteaseMusic
  • IP-CIDR,193.112.159.225/32,UnblockNeteaseMusic
  • IP-CIDR,59.111.181.155/32,UnblockNeteaseMusic
  • IP-CIDR,101.71.154.241/32,UnblockNeteaseMusic
  • IP-CIDR,115.236.118.33/32,UnblockNeteaseMusic

Advertising

  • DOMAIN,admusicpic.music.126.net,REJECT
  • DOMAIN,iadmat.nosdn.127.net,REJECT
  • DOMAIN,iadmusicmat.music.126.net,REJECT
  • DOMAIN,iadmusicmatvideo.music.126.net,REJECT

Final

  • MATCH,DIRECT

但是依然不能实现解锁效果(客户端用的clash,节点组选的Unblock),而我用配置中的节点,在ios的QUAN x 就可以。在日志里就没发现走UnblockNeteaseMusic或者Unblock,全是DIRECT.

@xiaoxin0
Copy link

xiaoxin0 commented Nov 3, 2019

@Atroc-0625
我的规则就是这个:https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml
把解锁网易云的规则写在最上面的自定义下就行
另外根据我之前踩过的坑,很多去广告的规则会对“.163.com“后缀的域名进行拦截,所以建议你暂时关闭其他服务,排除法试一试,上面这套规则应该完全没问题的

你好,我已经看了好几遍这个,有一点疑惑:
1.大佬你的规则https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml 这个里面是不包含解锁网易云的对吗?PS:这个规则是神机的吗?感觉有点像?
2.#162 (comment) 这个回复的规则,我写到配置里是这样的:

port: 7890

socks-port: 7891

allow-lan: false

mode: Rule

log-level: info

external-controller: 127.0.0.1:9090

dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
nameserver:

  • 119.29.29.29
  • 223.5.5.5

Proxy:

  • { name: "Unblock", type: ss, server: xxxxxxx, port: xxxxxxx, cipher: chacha20-ietf, password: "xxxxxxx" }

Proxy Group:

  • { name: "UnblockNeteaseMusic", type: select, proxies: [ "Unblock", "DIRECT" ] }

Rule:

Unblock Netease Music

#自定义规则 ##您可以在此处插入您补充的自定义规则

  • DOMAIN-SUFFIX,music.163.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,interface.music.163.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,interface3.music.163.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,apm.music.163.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,apm3.music.163.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,man.netease.com,UnblockNeteaseMusic
  • DOMAIN-SUFFIX,api.iplay.163.com,UnblockNeteaseMusic
  • IP-CIDR,59.111.181.60/32,UnblockNeteaseMusic
  • IP-CIDR,223.252.199.66/32,UnblockNeteaseMusic
  • IP-CIDR,223.252.199.67/32,UnblockNeteaseMusic
  • IP-CIDR,59.111.160.195/32,UnblockNeteaseMusic
  • IP-CIDR,59.111.160.197/32,UnblockNeteaseMusic
  • IP-CIDR,59.111.181.35/32,UnblockNeteaseMusic
  • IP-CIDR,59.111.181.38/32,UnblockNeteaseMusic
  • IP-CIDR,39.105.63.80/32,UnblockNeteaseMusic
  • IP-CIDR,47.100.127.239/32,UnblockNeteaseMusic
  • IP-CIDR,118.24.63.156/32,UnblockNeteaseMusic
  • IP-CIDR,193.112.159.225/32,UnblockNeteaseMusic
  • IP-CIDR,59.111.181.155/32,UnblockNeteaseMusic
  • IP-CIDR,101.71.154.241/32,UnblockNeteaseMusic
  • IP-CIDR,115.236.118.33/32,UnblockNeteaseMusic

Advertising

  • DOMAIN,admusicpic.music.126.net,REJECT
  • DOMAIN,iadmat.nosdn.127.net,REJECT
  • DOMAIN,iadmusicmat.music.126.net,REJECT
  • DOMAIN,iadmusicmatvideo.music.126.net,REJECT

Final

  • MATCH,DIRECT

但是依然不能实现解锁效果(客户端用的clash,节点组选的Unblock),而我用配置中的节点,在ios的QUAN x 就可以。在日志里就没发现走UnblockNeteaseMusic或者Unblock,全是DIRECT.

发完发现格式有点不对,被GitHub自动更改了,贴两张图:
配置文件:
1572789014(1)
1572789045(1)

@oddcc
Copy link

oddcc commented Dec 3, 2019

经测试,使用proxy.pac中转换过来的规则,安卓客户端在Wi-Fi环境下使用完美
但是在4G环境下就不生效了,歌曲都是灰色的,使用的是clashA
4G环境下抓包看了下,除了101.71.154.241这个请求地址,并没有找到其他规则里不包括的地址,但是这个地址加进去依然没有效果,原因未知

@ghost
Copy link

ghost commented Jan 29, 2020

安卓加GEOIP也代理网易云就能和clash共用,,,看样子cidr可能有漏下的。。。

@happy-proxy
Copy link
Author

@Jacky486 hi,有找到最新的Android端代理规则吗?

@njusilvaz
Copy link

改加的都加了,另外我是在termux 代理本地,是不是这个不行。

我也是这样,电脑端没问题。是不是跟clash for Android的vpn模式有关

@HZZformGD
Copy link

安卓加GEOIP也代理网易云就能和clash共用,,,看样子cidr可能有漏下的。。。

。。小白问一下 这个clash 咋用。 我在上面下载了一份 @iDesperad0 的规则 然后网易云的代码运行在我自己的服务器上 规则文件有哪一些是要改成自己的服务器ip的

@njusilvaz
Copy link

改加的都加了,另外我是在termux 代理本地,是不是这个不行。

我也是这样,电脑端没问题。是不是跟clash for Android的vpn模式有关

解决了,分应用代理设置一下就行,自己傻了。把本地运行的termux添加到clash的绕行应用就行,clash的代理规则用一条

  • DOMAIN-SUFFIX,163.com,UnblockMusic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants