前言

一直在用 Spotify,已经快一年没用网易云了。这几天想着回来看看音质怎么样,我靠我的歌单大半部分全变灰了,好好一个音乐工具,却把重心放在社区不搞版权,真牛啊。
好了,回到正题,我们可以使用 [bkc]UnblockNeteaseMusic[/bkc] 一个开源项目来解锁灰色歌曲

最新版网易云客户端目前无法使用此服务,建议使用 2.9.8 以下版本,这里我用的网易云版本为 2.9.5

网易云历史版本下载:
[hide]https://alist.xkl.me/%E7%A8%8B%E5%BA%8F/%E5%85%B6%E4%BB%96/%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90[/hide]

最新仓库地址:UnblockNeteaseMusic/server

Windows 搭建

Linux 搭建(推荐)

这里我使用 Rocky 9.0 演示搭建

1、安装常用组件及 NodeJs

推荐使用包管理器安装:

1
2
yum update
yum install nodejs

使用上方包管理器安装后,即可跳过此步手动安装Node

1.1 安装 vim wget tar

1
yum install -y vim wget tar unzip

1.2 下载配置 NodeJs

首先我们在 /usr/local 文件夹下新建一个名为 nodejs 的文件夹

1
mkdir /usr/local/nodejs

前往官网: http://nodejs.cn/download/
选择 Linux 二进制文件对应的 X86 架构,右键复制下载链接
1-comps.webp

进入刚刚创建的 nodejs 文件夹,在里面使用 wget 下载

1
2
cd /usr/local/nodejs
wget https://npmmirror.com/mirrors/node/v16.18.0/node-v16.18.0-linux-x64.tar.xz

2.webp
下载完成后,解压文件夹

1
tar -xvf node-v16.18.0-linux-x64.tar.xz

这是我们再使用 ls 就可以看到解压好的文件夹
5.webp
将 node-v16.18.0-linux-x64 文件下的文件拷贝到 /usr/local/nodejs 文件夹并删除无用的文件夹及压缩包

1
2
3
mv node-v16.18.0-linux-x64/* /usr/local/nodejs/
rm -rf node-v16.18.0-linux-x64.tar.xz
rm -rf node-v16.18.0-linux-x64/

最后得到这样
6.webp

1.3 建立软链接

1
2
ln -s /usr/local/nodejs/bin/node /usr/local/bin
ln -s /usr/local/nodejs/bin/npm /usr/local/bin

验证是否成功

1
2
node -v
npm -v

7.webp

2、安装插件

依旧使用 wget 来拉取然后解压, 解压后会有个 server-enhanced 文件夹,进入此目录

1
2
3
4
5
cd /usr/local
wget https://github.com/UnblockNeteaseMusic/server/archive/refs/heads/enhanced.zip
unzip enhanced.zip
cd server-enhanced
ls

8.webp

3、第一次运行

在 server-enhanced 里,执行命令

1
node app.js -p 49000

9.webp
运行起来了就如上图所示,但是现在肯定是不能用的,我们需要放行服务器端口

如果你是云服务器,还需要在服务商那将出战和入站的对应端口放行

使用快捷键 CTRL+C 终止运行,然后放行我们的 49000 端口

1
2
3
4
5
6
7
8
相关命令
systemctl status firewalld #查看防火墙状态
systemctl start firewalld #启动防火墙
firewall-cmd --zone=public --list-ports #查看firewall防火墙所有打开的端口
firewall-cmd --zone=public --add-port=443/tcp --permanent #添加443/tcp端口
firewall-cmd --zone=public --add-port=443/udp --permanent #添加443/udp端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent #删除指定端口
firewall-cmd --reload #更新firewall防火墙规则

10.webp
既然防火墙已经是打开的,那查看当前已放行的端口, 从下图可以看到没有一个端口被放行
11.webp

放行 49000 端口

1
2
3
4
firewall-cmd --zone=public --add-port=49000/tcp --permanent
firewall-cmd --zone=public --add-port=49000/udp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

12.webp
现在端口已开启,我们再次启动服务。依旧是在 server-enhanced 里执行

1
node app.js -p 49000

现在打开网易云客户端,设置——> 工具——>自定义代理
填入服务器 IP 和对应端口,然后点击测试,显示可用点击确定重启客户端
13.webp

就可以用拉,我们看一下使用前后对比
14.3.webp

4、设置开机自启

好了,现在是可以用了。但是我们是在前台运行的程序,一旦关闭终端就没法用了。那可不行,所以需要让他一直再后台运行
这里我们使用 PM2 后台运行
4.1 安装 PM2

1
npm install pm2 -g

如果安装一直没速度,可选择离线安装,教程: https://juejin.cn/post/6981734381954007077
建议软链接

1
ln -s /usr/local/nodejs/bin/pm2 /usr/local/bin/

验证是否成功

1
pm2 -version

15.webp

进入项目插件目录

1
cd /usr/local/server-enhanced

16.webp

注意,此项目的默认端口是 8080,我们需要将其给成 49000
需修改插件目录下/src/app.js 文件

1
2
3
4
5
6
vim /src/app.js


config. port = (config. port || '8080:8081')
改成
config. port = (config. port || '49000:49001')

修改前👇
17.webp
修改后 👇
18.webp
pm2 添加运行启动命令

1
pm2 start app.js --name="http_endpoit" -- -s -p 49000 -o kuwo qq migu

验证是否启动成功

1
pm2 list

19.webp
现在我们保存进程并设置开机自启即可

1
2
pm2 save
pm2 startup

完成,真不错啊,可以听想听的歌了

最后

这个项目还有些其他奇妙的功能,请自行探索噢