2024.2.20 更新一键搭建脚本

参考地址
作用
1. 能够听大部分变灰的歌曲(比如周杰伦)
2. 可以试听和下载需要会员的歌曲
参考文章

搭建基础版

安装Nodejs:
Centos

curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum -y install nodejs

Debian/Ubuntu系统

curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt install -y nodejs

拉取文件

cd /opt
git clone https://github.com/nondanee/UnblockNeteaseMusic.git

先测试一下是否可用

cd /opt/UnblockNeteaseMusic

启动命令改为 node app.js -p port1:port2 (port2 是用来内部转发的 https 端口)

node app.js -e https://music.163.com -p 8088:8089

可以用的话,按ctrl+c结束运行

开机自启

后台自动运行,利用forever实现后台运行以及开机运行
运行命令安装forever

npm install forever -g

运行命令 开启后台运行可关掉SSH连接

forever -s start app.js -e https://music.163.com -p 8088:8089

编辑/etc/rc.d/rc.local,在exit 0最上面添加并保存

cd /opt/UnblockNeteaseMusic/
forever -s start app.js -e https://music.163.com -p 8088:8089
//forever -s start app.js -e https://你自己的域名 -p 65533
exit 0

最后给权限

chmod +x /etc/rc.d/rc.local

更新开机用update-rc.d命令给Debian添加开机启动项

需要在/etc/init.d新建一个脚本my_startup.sh
debian要求文件头部有启动信息,所以一定要严格按照格式

#!/bin/sh
### BEGIN INIT INFO
# Provides: mystartup
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description: test
# Description: test
### END INIT INFO

# 启动 UnblockNeteaseMusic
forever -s start /opt/UnblockNeteaseMusic/app.js -s -e https://music.163.com -p 6666:6667
# 进入 /root/webd 目录并启动 webd
cd /root/webd && nohup ./webd &

exit 0

然后再执行命令update-rc.d my_startup.sh defaults
如果需要删除开机启动,执行命令
update-rc.d -f my_startup.sh remove

PS:forever -s start app.js -s -e https://music.163.com -p 8088:8089中的-s 意思是

  • forever后面的-s, –silent: 不打印日志和错误信息
  • app.js后面的-s, --strict:enable proxy limitation,开启代理限制防止代理被滥用,因为这是个全功能的代理,有个白名单,加了只放行网易云的流量,如果你用了全局代理的话会发现访问其他网站会失败,因为我是用的规则,所以不需要-s
  • http端口:8088
  • https端口:8089

更新

cd /opt/UnblockNeteaseMusic
git pull 

第一种方式

监听80端口
node app.js -p 80
Windows修改Hosts文件:C:\Windows\System32\drivers\etc\hosts
指定域名解析:
VPSIP music.163.com
VPSIP interface.music.163.com

第二种方式

监听其他端口,例如:
forever -s start app.js -e https://music.163.com -p 8088:8089
Windows网易云客户端内设置HTTP代理
PS:一般都选择第二种方式

高级版

配置 https endpoint 转发音源
域名绑定服务器IP
申请一个域名,然后绑定服务器IP
安装acme
参考文章
安装Nginx
Centos6/7

wget https://raw.githubusercontent.com/helloxz/nginx-cdn/master/nginx.sh && bash nginx.sh

安装完成后执行命令 source /etc/profile 让环境变量立即生效,或重新打开终端
Debian

apt install nginx

配置Nginx文件

server {
    listen 443 ssl;
    server_name banana-zone.me;
    ssl on;#如果还有listen 80那么就需写成#ssl on
    ssl_certificate /root/ssl/banana-zone.me.fullchain.cer; # 改为自己申请得到的 crt 文件的名称
    ssl_certificate_key /root/ssl/banana-zone.me.key; # 改为自己申请得到的 key 文件的名称
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://localhost:65533; # 代理到 Unblock ,端口为Unblock的端口
    }
}

然后配置网易云Unblock,即先进行上面的基础安装

配置文件

Surge专用配置

[Proxy]
网易云 = http, banana-zone.me, 8088
[Rule]
//Netease Music

//remove ad
USER-AGENT,neteasemusic*,REJECT
URL-REGEX,http://interface.music.163.com/eapi/ad,REJECT
URL-REGEX,http://p.c.music.126.net.*jpg$,REJECT
URL-REGEX,http://iadmusicmat.music.126.net.*jpg$,REJECT
URL-REGEX,http://music.163.com/api/feedback,REJECT-TINYGIF
URL-REGEX,http://interface.music.163.com/eapi/log,REJECT-TINYGIF
AND,((USER-AGENT,%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90*), (NOT,((DOMAIN,banana-zone.me))), (NOT,((DOMAIN,music.163.com))), (NOT,((DOMAIN-SUFFIX,music.126.net)))),REJECT
AND,((USER-AGENT,NeteaseMusic*), (NOT,((DOMAIN,music.163.com))), (NOT,((DOMAIN-SUFFIX,music.163.com)))),REJECT

//music without copyright
USER-AGENT,NeteaseMusic*,网易云

//未添加自定义endpoint时
URL-REGEX,http://music.163.com/package,网易云

ClashX配置

Proxy:
- { name: "UnblockNeteaseMusic", type: http, server: "<Server Name>", port: <PORT>}
Rule:
- DOMAIN-SUFFIX,163.com,UnblockNeteaseMusic
- GEOIP,CN,DIRECT
- MATCH,DIRECT

参考文章

MAC网易云客户端
需要降到 700 以下版本
636
690
700
最好是用Cleanmymac完整卸载,然后安装636版本,再用700覆盖即可(我是这样操作的)

会用到的命令

cd /opt/UnblockNeteaseMusic
node app.js  -p 8086:8087
node app.js -e https://music.163.com -p 8088:8089
node app.js -e https://你自己的域名 -p 65533
forever -s start app.js -p 8086:8087
forever -s start app.js -e https://music.163.com -p 8088:8089
forever -s start app.js -e https://你自己的域名 -p 65533

备注

端口默认是8080
node app.js
使用自定义端口5000
node app.js -p 5000 ...
设置搜索的音源 (有序)
默认为 qq kuwo kugou baidu xiami migu joox,排在越前优先级越高,启用越多网络开销越大,香港服务器优先joox
node app.js -o joox qq ...

个人总结

尝试了一下三种方法

  1. 国内服务器+使用证书
  2. 国内服务器+配置 https endpoint 转发音源
  3. 国外服务器+使用证书

最好用的方法

  • ios:surge/shadowrocket/quantumult x+国内服务器+使用证书
  • win:网易云客户端+国内服务器+配置 https endpoint 转发音源
  • mac:clashx+国内服务器(forever -s start app.js -p 8086 不能加-e https://music.163.com)