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

进阶配置 #48

Open
nondanee opened this issue Mar 29, 2019 · 49 comments

Comments

Projects
None yet
10 participants
@nondanee
Copy link
Owner

commented Mar 29, 2019

除了基本的命令行参数,在源码中还预留了一些可配置位置
如果有能力,可以了解一下这个部分

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Mar 29, 2019

自签证书

macOS 客户端 700 以上版本无法通过握手后返回空数据的方式降级 https 请求 (如有别的降级方式,请告知我),Linux 客户端 1.2 以上版本有同样问题,其它平台暂时还未遇到

可以直接换用旧版本
http://d1.music.126.net/dmusic/NeteaseMusic_2.0.0_700_web.dmg
http://d1.music.126.net/dmusic/NeteaseMusic_2.0.0_690_web.dmg
http://d1.music.126.net/dmusic/NeteaseMusic_1.5.10_636_web.dmg

新版通过自签证书直接代理 https 流量能够解决此问题 (同时支持 hosts 模式和代理模式)
可以直接使用仓库里的证书,若需自己签发证书,步骤如下 (需要用到 OpenSSL)

# 生成 CA 私钥
openssl genrsa -out ca.key 2048

# 生成 CA 证书
openssl req -x509 -new -nodes -key ca.key -sha256 -days 1825 -out ca.crt -subj "/C=CN/CN=UnblockNeteaseMusic Root CA/O=GitHub.com @nondanee"

# 生成服务器私钥
openssl genrsa -out server.key 2048

# 生成证书签发请求
openssl req -new -sha256 -key server.key -out server.csr -subj "/C=CN/L=Hangzhou/O=NetEase (Hangzhou) Network Co., Ltd/OU=IT Dept./CN=*.music.163.com"

# 使用 CA 签发服务器证书
openssl x509 -req -extfile <(printf "subjectAltName=DNS:music.163.com,DNS:*.music.163.com") -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt

完成后,将服务器私钥 (server.key) 和服务器证书 (server.crt) 拷贝到仓库中覆盖我提供的文件,再将 CA 证书 (ca.crt) 安装到系统;如果不自己签发,直接安装仓库里的 CA 证书 (ca.crt) 即可

CA 证书需要手动配置为信任,切记

之后在启动命令中增加 https 监听端口,格式为 -p <http port>:<https port>,hosts 模式是 80:443,代理模式随意,两个端口号不同即可

自签证书下网易云网页版是可用的,但是 unblock 无效,因为网页内嵌加密,需要脚本配合

测试发现 Windows 客户端的 API 请求可以使用自签证书,但播放音源的请求不信任网易云自家之外的任何证书 (letsencrypt 的也不认),会因为证书错误而播放失败,因此请不要使用 -e 修改 endpoint

@nondanee nondanee referenced this issue Mar 29, 2019

Open

食用指南 #22

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Mar 29, 2019

国内中继

测试过除咪咕外,QQ、虾米、百度、酷狗、酷我 API 都有海外墙,修改请求头无法绕过,必须通过国内代理,而音源文件本身没有海外请求限制,不需要代理。
考虑大陆服务器带宽比较珍贵,全局代理代价太大,增加了中继 "RPC"

目前仅提供 QQ 音源的公共中继服务
因 QQ 128k 音源可以用直接用测试 vkey,默认未启用中继服务

其它音源需要从国内请求的部分都预留了降级逻辑,不过在源码里屏蔽了,需要注释掉这个限制

if(path != 'qq/ticket') return Promise.reject()

中继服务器的源码为 bridge.js,部署后修改 host 变量为自己的服务器地址即可

P.S. 来自套路云、良心云的请求会被虾米拒绝

@nondanee nondanee added the pinned label Mar 29, 2019

@nondanee nondanee pinned this issue Mar 29, 2019

@iDesperad0

This comment has been minimized.

Copy link

commented Apr 1, 2019

Hi,我使用仓库里面默认的证书,安装到Mac中,然后经用surge代理,surge端显示无效的证书链是个啥情况?(Mac客户端没升级之前一直都是OK的)

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Apr 1, 2019

@iDesperad0
需要在 "钥匙串" 里信任根证书,此步骤是否遗漏?
装完证书应该需要重启一下应用,chrome是这样的好像。

@iDesperad0

This comment has been minimized.

Copy link

commented Apr 1, 2019

妈耶,是我的疏忽!因为之前一直用代理模式而把端口设置成8080,改成hosts模式忘了改回80了,刚才改成80已经OK了!只不过以前一直用的代理模式已经行不通了,感觉有点奇怪,有时间我再琢磨琢磨,也可能是surge的锅。
总之不论哪个方法最后还是成了,而且320Kbps是真香啊!非常非常感谢你哈!

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Apr 2, 2019

@iDesperad0 你可以测试一下用系统代理,看看有没有问题,我试过应该是可以的。

@iDesperad0

This comment was marked as off-topic.

Copy link

commented Apr 19, 2019

QQ的音源真的很迷啊,128K真的难以下咽。忍住不用QQ音乐越来越难。

@iDesperad0

This comment was marked as off-topic.

Copy link

commented May 4, 2019

是不是QQ的音源又挂了😂?刚才突然发现好多歌曲不能放了,以为hosts也失效了,折腾老半天,看log发现小部分歌使用了千千静听音源,其他大部分QQ音乐独占的资源几乎全失效了。

@nondanee

This comment was marked as off-topic.

Copy link
Owner Author

commented May 4, 2019

@iDesperad0
最新的 release (包括 docker) 上的挂了,已经好几天了(星期二到现在)
最新的 commit,M500 是没问题的
以后不会再管 QQ 高音质了,换一个封一个......

@iDesperad0

This comment was marked as off-topic.

Copy link

commented May 4, 2019

@nondanee
哈哈,辛苦了,无奈QQ音乐占据着国内最大的版权比例😢

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented May 10, 2019

@LeticiaAnna
不支持,README 里写了,设置 -t user:password 用不了(当然你可以试试看,switchyomega 里可以用)
上游代理也不支持用户名密码

不好意思我手抖把你的评论删掉了==

Repository owner deleted a comment from LeticiaAnna May 10, 2019

@onewayticket255

This comment has been minimized.

Copy link

commented May 10, 2019

我这里测试卸载干净再装Mac 2.0(730),直连基本都用http
Snipaste_2019-05-10_16-11-17.png

CleanMyMac卸载原始版本再安装    
版本                直连                   连unblockserver
1.5.10 636      music.163.com:443      可以降级 https 请求
2.0    700      music.163.com:443      不可以降级 https 请求
2.0    730      http

覆盖升级                            直连           连unblockserver
1.5.10 636  --> 2.0 700      music.163.com:443  不可以降级 https 请求
2.0    700  --> 2.0 730      http

这是今天下午测的。这结果很迷,和之前我的测试结果不太一样。

@app-AZ

This comment has been minimized.

Copy link

commented May 10, 2019

进阶成功,我想问一下老哥,-e http://xxx.xxx:999 接域名的话,能不能改你的js文件来进行操作,我想用PM2来进行node后台,但是找不到pm2 脚本配置命令该怎么写,如果能改到js文件里面那我就直接PM2 app.js就可以了,希望老哥能说一下js文件改哪里

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented May 10, 2019

@app-AZ
pm2 start app.js -- -e http://xxx.xxx:999

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented May 10, 2019

@onewayticket255
我自己没测过 726 和 730,如果默认 http 的话那也挺好的,方便 MITM,之后我去确认一下

但是 700 我这边结果还是:直接安装无法降级,在 636 降级了,覆盖上来就可以降级
关键点不是覆盖,而是在 636 降级 http 成功了(如果在 636 没降级过,覆盖 700 也还是不能降级的)

其实装了证书的话,降不降级就无所谓了

降级和自签证书这两个 trick 都很容易封的,且用且珍惜

@CrazyMelody

This comment has been minimized.

Copy link

commented Jun 3, 2019


Hosts模式,CA证书信任了,node app.js -p 80:443 -f 103.126.92.132启动后,列表不灰了,但是播放不出来,请问什么原因?日志中的链接我在浏览器是秒开的,版本774

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Jun 3, 2019

@CrazyMelody
看 log 的话,443 的端口没有被请求,有的话应该是 MITM > music.163.com (ssl)
你试一下在 chrome 里打开 https://music.163.com 看看会不会提示不安全,期间我换过一次证书不知道你有没有重新安装

因为 isure.stream log 说明是有请求的
猜测可能被 QQ ban 了?(user-agent 会被查出来) 如果可以的话

return resolve(ctx.proxyRes = proxyRes)

在这个位置 print 一下 url 和 proxyRes.statusCode 试一下

抱歉我没试测试 774 版本,你可以新建一个 issue 看看别人的反馈

@CrazyMelody

This comment has been minimized.

Copy link

commented Jun 3, 2019

@CrazyMelody
看 log 的话,443 的端口没有被请求,有的话应该是 MITM > music.163.com (ssl)
你试一下在 chrome 里打开 https://music.163.com 看看会不会提示不安全,期间我换过一次证书不知道你有没有重新安装

因为 isure.stream log 说明是有请求的
猜测可能被 QQ ban 了?(user-agent 会被查出来) 如果可以的话

return resolve(ctx.proxyRes = proxyRes)

在这个位置 print 一下 url 和 proxyRes.statusCode 试一下
抱歉我没试测试 774 版本,你可以新建一个 issue 看看别人的反馈

感谢回复,找到问题了,因为公司网络有个诡异的问题,用chrome打不开大部分https网站,得科学上网才可以,用safari则秒开。。。我把网络换成流量就正常了

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Jun 3, 2019

@CrazyMelody 好的

@bigNeoneo

This comment has been minimized.

Copy link

commented Jun 4, 2019

其实我是想问,这样启动服务后,我在windows客户端设置代理就直接用了,很完美,可是我在IOS设备,用potasto直接挂VPN使用,就无法使用,看控制台也有显示
image
image
求解答,再次感谢

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Jun 4, 2019

@i-chaochen

This comment has been minimized.

Copy link

commented Jun 12, 2019

#48 (comment)

所以就是一直不升级。。。?

@Aqua-Dream

This comment has been minimized.

Copy link

commented Jul 12, 2019

请教一个问题,就是服务器端怎样配置可以让音源文件不走代理?因为本身音源不需要检测地区的话,我期望的是服务器端只做链接修改,音源的下载还是由客户端完成。

在服务器端,我的启动方法是node app.js -s -p 端口
在安卓上,我的配置方法是打开Wifi设置,修改PAC为http://服务器IP:端口/proxy.pac。结果可以下载周董的歌,但下载速度只有100K/s,所以我猜测下载文件是走的服务端(因为我的服务器是最低配所以带宽应该是比较小)。

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Jul 12, 2019

@Aqua-Dream
是的音源(下载)走服务器
可以不走代理,按他这样改就行了 #143 (comment)

不过安卓(和 macOS)端下载前有一次预下载计算 MD5 的过程 (MD5 不正确无法正常下载),#98 #101
服务器带宽很小的话也比较慢 (累计下载两次)

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Jul 12, 2019

@Aqua-Dream
我回旧版本测了下好像并没有我以前顾虑的问题,下个版本我会改过来

@Aqua-Dream

This comment has been minimized.

Copy link

commented Jul 12, 2019

@Aqua-Dream
是的音源(下载)走服务器
可以不走代理,按他这样改就行了 #143 (comment)

不过安卓(和 macOS)端下载前有一次预下载计算 MD5 的过程 (MD5 不正确无法正常下载),#98 #101
服务器带宽很小的话也比较慢 (累计下载两次)

貌似确实有效,感谢

@lostimever

This comment has been minimized.

Copy link

commented Jul 18, 2019

help

我是按照步骤来的呀,怎么就这样了

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Jul 18, 2019

@lostimever
按照什么步骤,请简单说一下
用的 proxifier?要不你看一下这个 #91

@lostimever

This comment has been minimized.

Copy link

commented Jul 18, 2019

@lostimever
按照什么步骤,请简单说一下
用的 proxifier?要不你看一下这个 #91

感谢,我这边好了,我简单说一下我这边配置,你以后可以做参考:
1、服务器上用supervisord 作进程管理;
2、macOS Mojave 10.14.5 (18F203);
3、Proxifier for Mac v2.22
4、网易云 Version 2.1.0 (782)

iOS还没有搞定,以后再研究一下

@auntspock

This comment has been minimized.

Copy link

commented Jul 20, 2019

大佬,请问按照node app.js -p 65535这种方式设置后,现在是不是不能用了?
win端网易音乐内歌曲由灰变黑,但是播放时总是显示失败。

@auntspock

This comment was marked as off-topic.

Copy link

commented Jul 20, 2019

大佬,请问按照node app.js -p 65535这种方式设置后,现在是不是不能用了?
win端网易音乐内歌曲由灰变黑,但是播放时总是显示失败。

我5月的时候通过这种方式还能在win端网易音乐用的

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Jul 20, 2019

@auntspock
不会啊,刚试了没问题
log 没有显示匹配结果吗?
客户端版本和 unblock server 版本分别是多少?
测试用了哪首歌?歌曲 id 是多少?

@auntspock

This comment has been minimized.

Copy link

commented Jul 20, 2019

@auntspock
不会啊,刚试了没问题
log 没有显示匹配结果吗?
客户端版本和 unblock server 版本分别是多少?
测试用了哪首歌?歌曲 id 是多少?

谢谢大大回复,我截图如下可能更好说明:
1、centos7 64位,采用的0.16.0版release。
2、在win端网易客户端启用全局代理后,服务器日志如下


3、复制日志中http开头的地址在浏览器打开可以打开播放和下载。

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Jul 20, 2019

@auntspock
不要用 -s
或者追加 -e http://music.163.com

@auntspock

This comment was marked as off-topic.

Copy link

commented Jul 20, 2019

@auntspock
不要用 -s
或者追加 -e http://music.163.com

意思是删除-s对吧,好的我试试

@auntspock

This comment has been minimized.

Copy link

commented Jul 20, 2019

终于可以了,但是等了接近3分钟才能播放,是什么原因呢,大大,我是不是应该在-o参数里,把qq、虾米放到前面?
@nondanee

This comment was marked as off-topic.

Copy link
Owner Author

commented Jul 20, 2019

不知道啊
如果之前不会等 3 分钟的话你可以用上一个版本试试

还有
加了 -e http://music.163.com 的话
是可以用 -s

@auntspock

This comment was marked as off-topic.

Copy link

commented Jul 20, 2019

好的,那我又加上-s。
上个版本是指0.15.2对吗,我试试

@auntspock

This comment was marked as off-topic.

Copy link

commented Jul 20, 2019

会不会跟我没有开bbr有关

@nondanee

This comment has been minimized.

Copy link
Owner Author

commented Jul 20, 2019

@auntspock
这个你自己测试吧
反正 0.16.0 加上 -e http://music.163.com 就和 0.15.2 的默认配置一致了 (在代码逻辑上)

@auntspock

This comment was marked as off-topic.

Copy link

commented Jul 20, 2019

好的谢谢大大

@auntspock

This comment was marked as off-topic.

Copy link

commented Jul 20, 2019

@auntspock
这个你自己测试吧
反正 0.16.0 加上 -e http://music.163.com 就和 0.15.2 的默认配置一致了 (在代码逻辑上)
另外我需要在服务器上开bbr加速吗

@auntspock

This comment was marked as off-topic.

Copy link

commented Jul 21, 2019

大大,使用win端网易的时候,是不是每次用之前都需要去服务器执行一次node app.js -s -p 16070 -o xiami qq migu netease baidu kugou kuwo joox命令?刚刚执行后出现如下提示

@nondanee

This comment was marked as off-topic.

Copy link
Owner Author

commented Jul 21, 2019

@auntspock
不需要,去找个进程守护工具 #136
报错说端口被占用了,应该是之前就启动了吧

@auntspock

This comment was marked as off-topic.

Copy link

commented Jul 21, 2019

好的大大,装了个supervisord。
1、如果我要调整音源的搜索顺序,该执行哪个步骤呢?
2、如果在手机使用该服务,是在手机的网络设置-v**选项里面填入网址和端口吗?

@auntspock

This comment was marked as off-topic.

Copy link

commented Jul 21, 2019

是在截图中填写吗?填好也保存了,但是没有办法选中启用呢
@nondanee

This comment was marked as off-topic.

Copy link
Owner Author

commented Jul 21, 2019

@auntspock 你提的问题跟此 issue 没有关系,麻烦新开一个 issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.