macOS、iOS、Windows 解锁网易云音乐灰色歌曲

废话不多说,先上效果图!

感谢大神们的开发,本文仅记录自己的配置过程,大部分方法都来自项目的 issue

项目地址:https://github.com/nondanee/UnblockNeteaseMusic

更新:原项目貌似停止维护了,但有大佬们仍在继续更新拓展 (https://github.com/1715173329/UnblockNeteaseMusic)

感谢、感谢、感谢

直接开始!

使用 Docker 部署

https://hub.docker.com/r/nondanee/unblockneteasemusic/

1
docker pull nondanee/unblockneteasemusic

使用自签证书

1
2
3
4
5
6
7
# 注意替换下方 -p 后的端口,-v 后的路径
docker run --name unblockneteasemusic \
-p 2333:2333 -p 2334:2334 \
-v /path/to/server.crt:/usr/src/app/server.crt \
-v /path/to/server.key:/usr/src/app/server.key \
-d nondanee/unblockneteasemusic \
-s -e https://自己的域名 -p 2333:2334

使用自带证书

1
2
3
4
5
# 注意替换下方 -p 后的端口,-v 后的路径
docker run --name unblockneteasemusic \
-p 2333:2333 -p 2334:2334 \
-d nondanee/unblockneteasemusic \
-s -e https://自己的域名 -p 2333:2334

旧:以下为手动配置

服务端设置

原服务支持在本地运行,为方便我部署在服务器端,使用阿里云的轻量应用服务器,CentOS 7

准备一个域名,并签发 SSL 证书

安装 NodeJS:https://github.com/nodesource/distributions/blob/master/README.md

在 CentOS 7 中安装 NodeJS 13.x

1
2
3
4
5
6
7
yum install gcc-c++ make

# root 用户
curl -sL https://rpm.nodesource.com/setup_13.x | bash -

# 非 root 用户
curl -sL https://rpm.nodesource.com/setup_13.x | sudo bash -

在服务器端 clone 项目

1
git clone https://github.com/nondanee/UnblockNeteaseMusic.git

—————- 可选步骤 —————-

在本地生成自签名证书 (此步可省略,使用作者提供的证书亦可)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 生成 CA 私钥
openssl genrsa -out ca.key 2048

# 生成 CA 证书 ("YOURNAME" 处填上你自己的名字)
openssl req -x509 -new -nodes -key ca.key -sha256 -days 1825 -out ca.crt -subj "/C=CN/CN=UnblockNeteaseMusic Root CA/O=YOURNAME"

# 生成服务器私钥
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) 拷贝到远程服务器仓库中覆盖原有文件

—————- 可选步骤结束 —————-

为解决 iOS 能够使用,这里使用自己的域名进行转发,如没有域名则参考官方信任自签发证书的方法,这里不展开描述:iOS 食用指南

配置 Nginx 服务,在 Nginx 配置后加入如下配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
listen 443 ssl http2;
server_name xxx.xxx.com; # 准备的域名

ssl_certificate /root/UnblockNeteaseMusic/xxx.xxx.xxx.crt; # SSL 证书路径
ssl_certificate_key /root/UnblockNeteaseMusic/xxx.xxx.xxx.key; # SSL 密钥路径
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:2333; # 代理到 Unblock 服务地址,端口可自行修改
}
}

完事后测试并重载 Nginx 配置

1
2
3
4
5
$ nginx -t                                            
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

$ nginx -s reload

使用 service 管理服务,新建 /etc/systemd/system/UnblockNeteaseMusic.service

写入如下内容

/etc/systemd/system/UnblockNeteaseMusic.service
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=UnblockNeteaseMusic

[Service]
Type=simple
ExecStart=/usr/bin/node /root/UnblockNeteaseMusic/app.js -s -e https://自己的域名 -p 2333:2334
WorkingDirectory=/root/UnblockNeteaseMusic
Restart=always
RestartSec=10
User=root

[Install]
WantedBy=multi-user.target

注意:

  • ExecStartWorkingDirectory 根据情况改动
  • ExecStart-e 后接已经签发证书的域名,记得为 https。这一参数的原因详见:iOS 配置经验分享
  • ExecStart-s 表示启用严格模式,仅允许网易云相关的通过,防止 HTTP 代理滥用,可选
  • ExecStart-p 后接端口,随意设置,如 2333:2334,第一个端口保持和 nginx 配置中设置的一致
  • 记得在阿里云控制台防火墙中放行第一个端口 2333

启动服务

1
2
systemctl daemon-reload
systemctl start UnblockNeteaseMusic

服务端完成

管理命令

1
2
3
4
5
6
systemctl status UnblockNeteaseMusic # 查看服务状态
systemctl start UnblockNeteaseMusic # 启动服务
systemctl restart UnblockNeteaseMusic # 重启服务
systemctl stop UnblockNeteaseMusic # 停止服务
systemctl enable UnblockNeteaseMusic # 开机自启动
systemctl disable UnblockNeteaseMusic # 取消开机自启动

macOS

配合 Proxifier 食用

Proxies 添加 HTTPS 代理

添加规则

Applications 添加:NeteaseMusic; com.apple.WebKit.Networking

Target Hosts 添加:*.music.163.com; *.netease.com;

Action 选择上一步添加的 HTTPS 代理

打开网易云音乐 App,如出现以下提示,则还需要信任一个证书

使用 Safari 打开 music.163.com,会出现危险警告,选择查看详细信息,并点击最后访问此网站,然后信任证书

搞定!

注意:Proxifier 需要一直在后台运行,才能转发网易云的流量

iOS

配合 Quantumult X 食用

手动修改 Quantumult X 配置文件

  1. [policy] 下添加组策略:

    1
    static=NeteaseMusic, NeteaseUnlocker, direct, img-url=https://raw.githubusercontent.com/Koolson/Qure/master/IconSet/Netease_Music_Unlock.png
  2. [server_local] 下添加 HTTP 代理:

    1
    http=xxx.xxx.xxx.xxx:2333, over-tls=false, fast-open=false, udp-relay=false, tag=NeteaseUnlocker

    xxx.xxx.xxx.xxx:2333 替换为服务器 IP 和指定端口

  3. [filter_local] 下添加规则:

    1
    2
    3
    4
    DOMAIN-SUFFIX,music.163.com,NeteaseMusic
    DOMAIN-SUFFIX,api.iplay.163.com,NeteaseMusic
    DOMAIN-SUFFIX,mam.netease.com,NeteaseMusic
    DOMAIN-SUFFIX,hz.netease.com,NeteaseMusic

完成!

Windows

配置简单,打开网易云音乐的设置

工具 -> 自定义代理 -> HTTP 代理

填入相应的服务器和端口,重启应用生效

完成!

参考资料:

macOS、iOS、Windows 解锁网易云音乐灰色歌曲

https://morooi.cn/2020/unblockneteasemusic/

作者

SJ Zhou

发布于

2020-03-22

更新于

2021-08-30

许可协议

评论