回顾一下今晚再次尝试设置网易云音乐的无版权歌曲播放修改流程,走过的坑很多,想要记录一下。

成功进行权限修改的条件
1-一台能够连接中国大陆网络的设备(windows电脑、云服务器);
*经过其他网友的测试,其实部分非大陆的云服务器也是可以的,自行搭建机场的同学可以尝试看,前提是ping值不要太高。
2-找到相关的代码包(链接在这里)(注意,链接内的版本是最近仍在维护的代码,原作者最后的维护时间大概是2020年,目前已失效);
3-配置相关环境,运行代码(下文将会介绍),设置附带参数;
4-放行相关端口;
服务器端设置
接下来将介绍云服务器以及windows电脑的操作示范,可二选一。
可选操作1-云服务器操作示范
各类linux系统均可以按照这种思路进行操作,包括centos、ubuntu等等。
本人使用的是腾讯云+centos+宝塔面板。
*需要注意的是,由于宝塔面板对于pm2、docker的设定似乎有一些问题(归因不一定正确),这会导致UnblockNeteaseMusic服务在运行一段时间之后内存占用过大,从而无法响应的情况,可参考这篇文章的设置,从而解决这个问题。
# 可选环境1-nodejs+pm2,负责为代码运行提供环境
## 安装git依赖,用来准备拉取代码
yum install git
## 使用git拉取代码
git clone https://github.com/UnblockNeteaseMusic/server.git
## 若下载失败,可以尝试走ghproxy代理
git clone https://ghproxy.com/https://github.com/UnblockNeteaseMusic/server.git
## nodejs+pm2的安装教程链接
## https://juejin.cn/post/6844903993936723981#heading-8
## 使用pm2运行代码
pm2 start UnblockNeteaseMusic/app.js --name UnblockNeteaseMusic -- -p 8080:8081 -e https://music.163.com
### -p表示代理端口,8080:8081中,8080走http,8081走https,目前网易云的客户端大部分要求走https,所以代码如上文设置,稍后在客户端处填写代理服务器端口时,写8080,则其会自动调用8081的端口
### -e表示服务请返回请求时虚拟的返回主机名https://music.163.com,建议不要删去,本人在未使用该参数时,ios客户端出现“网络不给力”的提示,后发现是该参数的原因
----------
# 可选环境2-除了nodejs+pm2以外,也可使用docker为代码运行提供环境
## docker的安装教程链接
## https://www.crazydeveloper007.com/centos7-8-docker-install/#_1-docker%E5%AE%89%E8%A3%85%E6%AD%A5%E9%AA%A4
#docker拉取代码
docker pull pan93412/unblock-netease-music-enhanced
#docker运行代码
docker run pan93412/unblock-netease-music-enhanced -p 8080:8081 -e https://music.163.com
### -p表示代理端口,8080:8081中,8080走http,8081走https,目前网易云的客户端大部分要求走https,所以代码如上文设置,稍后在客户端处填写代理服务器端口时,写8080,则其会自动调用8081的端口
### -e表示服务请返回请求时虚拟的返回主机名https://music.163.com,建议不要删去,本人在未使用该参数时,ios客户端出现“网络不给力”的提示,后发现是该参数的原因
代码环境运行后,请记得在云服务器的安全组、端口设置等部分,放行tcp8081、8081入站端口。
可选操作2-windows操作示范
下载程序
进入网站下载程序,在最新版本号(如v0.27.0-rc6)下方找到Assets部分,选择unblockneteasemusic-win-x64.exe进行下载。
若下载失败,可尝试走ghproxy代理,此处提供一个链接,不保证为最新版。
运行,并设置启动参数
下载后,将程序文件转移至一个适合放置的地方,比如C盘根目录,并依据程序文件创建一个快捷方式,同时为快捷方式进行一些参数调整:
1-右键点击“属性”-选择“快捷方式”面板-将“运行方式”设置为“最小化”;
2-同样,在“快捷方式”面板处,在“目标”后先添加一个空格,然后添加下列参数:
-p 8080:8081 -e https://music.163.com
3-点击“确定”按钮,退出调整。
然后,键盘按下 win徽标键+r,输入 shell:startup 进入“启动”文件夹,将该快捷方式移动至此文件夹,之后开机将自动启动。
如果需要将服务器放在公网环境下,而不是在本地、本机使用,请下载花生壳等ddns软件,并允许相应端口的进出。
客户端设置
平台很多:涉及到windows、android、macos、iOS……
方法很多:客户端内设置代理、走系统内的全局代理、使用shadowrocket、quantumult x等设置撰写规则……
由于我使用的主要是ios客户端,因此,我主要对ios平台的操作进行介绍。其他平台、方法可参考这里的“方法2”。
ios客户端
使用safari下载该证书,允许下载配置描述文件,并打开系统设置,在“已下载描述文件”部分,点击进入,出现“安装描述文件”为“UnblockNeteaseMusic Root CA”的文件,点击“安装”,输入锁屏密码,并在安装完成之后,点击左上角“返回”,回到“通用”界面,再点击“关于本机”,跳转到最下方“证书信任设置”,将“UnblockNeteaseMusic Root CA”设置为“开启”状态。
使用证书的目的在于,我们可以劫持网易云客户端与官网的链接,这样才能检索灰色的歌曲,用其他平台的音源来代替。若上述证书链接无法访问,可点击这里。
有了证书只是代表我们有资格劫持,二不代表我们已经可以劫持。下面以Quantumult X为例,说明如何让我们架设的服务器与客户端之间的联系。
我们假设,你已经使用了Quantumult X订阅了一些机场节点,因此这里不再介绍对于订阅文件、资源解析器等的操作。
打开Quantumult X,点击右下角的三角图标,进入“设置”页面。找到“MitM”部分,点击右侧“开启”,点击下方“生成证书”,并点击“配置证书”,软件将生成名为“Quantumult X CA xxxxxxxx”的证书文件。具体的操作步骤可参考上文对于“UnblockNeteaseMusic Root CA”证书的操作。
上述操作完成后,返回到Quantumult X,在“设置”页面点击页面最下端的“配置文件”部分,点击“编辑”,增加以下四个部分的代码:
# 本地服务器转发参数[server_local]
http=xx.xx.xx.xx:8080, fast-open=false, udp-relay=false, tag=网易云解锁
# 此处的作用,是用来提供一个转发的端口,用来建立数据连接,xx.xx.xx.xx为相应服务器端的ip。
# 分流规则[filter_remote]
https://raw.githubusercontent.com/O7Y0/Attached/main/UnblockNeteaseMusic/NeteaseCloudMusic.list, tag=网易云音乐, force-policy=网易云音乐, update-interval=86400, opt-parser=true, enabled=true
## 此处的作用,是告诉软件,哪些域名被匹配,需要进行劫持操作。
# 策略部分[policy]
static=网易云音乐, Final, direct, 网易云解锁, img-url=https://raw.githubusercontent.com/HostCN/quanx/master/IconSet/Netease_Music.png
## 此处的作用,是用来在软件主界面提供解锁or直流的方案。
## Final, direct, 网易云解锁, 三者对应的是相应的节点策略,final是我自己设置的节点,你可以根据自己的需要修改,或者直接删掉也可以,direct建议保留。
## 该条代码最好放置于中国大陆媒体分流策略(也就是[policy]内)的前方,这样方便优先进行规则判断,避免因网易云ip归属于中国大陆而最后被判定走direct。
# https解析[mitm]
hostname = *.music.163.com
## 此处用来制定需要进行劫持的匹配域名,与filter_remote搭配使用。
skip_validating_cert = True
## 此处用来跳过证书验证,因为我们使用的证书是代码作者自签的。
操作完成后,点击“确定”,回到软件主界面,开启代理开关。
接下来就享受无版权限制的网易云音乐吧~