环境说明: 服务器:ubuntu 20.04 客户端:Win10 / DeepinV20 社区版 网易云音乐版本:V2.8.1(Win10) / V1.2.1(Deepin)
前言
openwrt上面有一款插件叫“网易云音乐解锁”,可以解锁网易云的所有会员歌曲和没有版权的歌曲,可是要使用这项服务就必须连接到openwrt路由器,如果在外面的话就不行了,所以还是有一定的局限性。
最近在github上发现一个项目,可以利用云服务器来搭建一个网易云解锁服务。项目地址:GitHub - nondanee/UnblockNeteaseMusic: Revive unavailable songs for Netease Cloud Music。
还有另外一个项目:GitHub - meng-chuan/Unlock-netease-cloud-music: 解锁网易云音乐客户端变灰歌曲,这个项目整合了目前各个平台解锁网易云的相关方法,核心就是上面的那个项目。作者写了一个详细的教程,也包括本地搭建和服务器(Linux/Windows)端搭建的教程。服务器环境是直接使用宝塔面板,并不是手动搭建。目前我的服务器并没有使用宝塔面板,不得不手动搭建环境。所以就有了这一篇博客。
下面就是在云服务器上搭建环境并运行项目的整个过程:
1.安装node.js和npm
ubuntu中用一句命令就可以安装node.js和npm:
sudo apt update
sudo apt install nodejs npm
安装完成后,输入以下命令可以查看node.js版本:
nodejs --version
2.启动服务
从github上把项目文件拉取下来,然后上传到服务器上的任意一个位置。
git clone https://github.com/nondanee/UnblockNeteaseMusic.git
完成后,进入到服务器上该项目的文件夹里,运行如下命令启动服务:
node app.js -p 10000 -f 59.111.181.60
“-p”命令表示设置服务端口,这里选择10000端口。同时,需要在服务器的安全组中放行这个端口。“-f”命令表示强制使用网易服务器ip。

3.设置服务开机启动
此时,如果退出了ssh连接窗口,那么这个服务将会停止,所以我们还需要把这项服务添加到开机启动项目中,使其开机就能启动并在后台运行。
在/etc/init.d目录下新建一个脚本文件:
sudo nano /etc/init.d/uncm.sh
输入以下内容,并根据注释更改相关内容:
#!/bin/bash ### BEGIN INIT INFO # Provides: unlockmusic # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start unlockmusic # Description: start unlockmusic ### END INIT INFO
下面这一部分是命令内容,以exit 0结束
/root/Unlock-netease-cloud-music换成自己的目录
cd /root/Unlock-netease-cloud-music
node app.js -p 10000
exit 0
修改完之后ctrl +o保存,ctrl +x退出。执行以下语句给脚本文件足够的执行权限:
sudo chmod 755 uncm.sh
最后再将脚本添加到开机启动:
sudo update-rc.d uncm.sh defaults 90
90表示执行的优先级,数字越大表示越晚执行。
附:移除脚本命令:
sudo update-rc.d -f [脚本文件名] remove
做完这些之后,重启一遍服务器,使服务开机运行起来,然后我们就可以放手不用管了。至此,一个安全稳定的网易云解锁服务就搭建好了。只要服务器不挂,解锁服务就能生效。
4.设置网易云音乐代理
4.1 Windows端
注意:请保证网易云音乐的版本不高于 2.9.5,经测试,此代理方式在 2.9.5 以上的版本已经无法使用,原因未知。
网易云音乐 2.9.5 下载地址(安装完成之后务必关闭自动更新):https://image.wlplove.com/download/cloudmusicsetup2.9.5.199424.exe
打开 win10 的网易云音乐,进入“设置”->“工具”选项,选择“自定义代理”,“服务器”填写域名或者ip地址,“端口”填前面启动项目时设置的端口号即可。

然后点击测试按钮,如果配置无误,那么就会提示“该代理可以使用”

点击确定,重启网易云音乐。
4.2 Linux端
此项是解锁Linux端网易云音乐的无版权歌曲,Windows用户直接忽略即可。
还有,请注意此项所述的“Linux”是指客户端,前面的”Linux“是指服务器端。
此处以Deepin系统为例,方法整理自:Linux 客户端食用指南 · Issue #208 · nondanee/UnblockNeteaseMusic (github.com)。
(1) 设置反向代理
Linux端的网易云音乐客户端没有设置代理的选项,也不能指定服务端口,因此这个服务必须要运行在服务器端的80/443端口,但这两个端口一般都是被占用的(因为服务器要提供网站服务),所以还要做反向代理。当然,如果端口没有被占用,就可以跳过设置反向代理这一步了。
添加一个Nginx配置:
server { listen 80; listen 443 ssl; server_name music.163.com interface.music.163.com;
ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'AES128+EECDH:AES128+EDH'; ssl_prefer_server_ciphers on; location / { proxy_pass https://127.0.0.1:52000; proxy_set_header HOST 'music.163.com'; }
}
然后重新载入Nginx配置文件:
nginx -s reload
(2) 添加证书
项目目录中默认带有证书文件“ca.crt”。或者也可以选择自己签发证书:进阶配置 · Issue #48 · nondanee/UnblockNeteaseMusic (github.com)。
切换到项目目录,将证书文件复制到/usr/local/share/ca-certificates/目录下:
sudo cp ca.crt /usr/local/share/ca-certificates/
然后刷新:
sudo update-ca-certificates
如果要删除已经信任的证书,先将/usr/local/share/ca-certificates/下拷贝的.crt证书文件删除,
然后执行以下命令,刷新配置文件,删除软链接:
sudo update-ca-certificates -f
(3) 修改host文件
host文件位置为/etc/hosts。向host文件末尾添加如下内容:
# host文件格式为“ip地址 网址”,中间有空格
[服务器ip] music.163.com
[服务器ip] interface.music.163.com
(4) 添加默认启动参数
修改网易云的启动项,位于/usr/share/applications,直接编辑:
sudo nano /usr/share/applications/netease-cloud-music.desktop
在“Exec”这一行末尾增加--ignore-certificate-errors
即可。
此时,Linux端的网易云音乐也可以听变灰的歌曲了。