小蜗熊的蜂蜜罐
使用代理服务播放网易云下架音乐
发布于: 2020-04-20 更新于: 2020-08-03 分类于: 技术 > 网络硬件 阅读次数: 

目前网易云上越来越多的音乐因为版权原因被下架,而且很多音乐也变成了vip才能播放(甚至包括大悲咒、国际歌这种音乐)。
在这里我们可以使用 UnblockNeteaseMusic 来搭建一个网易云代理服务,从而解锁因下架变成灰色的音乐或是需要vip才能播放的音乐。

安装与配置

docker部署

拉取镜像

1
docker pull nondanee/unblockneteasemusic

运行docker

1
docker run --restart=always --name 163 -d -p 8999:8080 nondanee/unblockneteasemusic 

其中 --name 163 是自定义的名字
8999:8080 是映射端口,表示本地的8999端口映射到docker的8080端口

使用npx运行

1
$ npx @nondanee/unblockneteasemusic

每次使用npx时会自动安装在临时目录,退出后会自动删除

源码部署

目前我使用的是这个方法。
首先在Github上下载最新的源码,并安装node js环境。
执行以下内容

1
2
3
cd ~\UnblockNeteaseMusic
node app.js -p 606:605 -s -e http://music.163.com #PC & Android
node app.js -p 606:605 -s -e https://music.163.com #IOS

也可写成bat脚本方便启动服务

对于设置endpoint音源,对于不同设备需使用不同方式
PC版由于不信任用户添加的证书需使用 -e http://music.163.com,IOS版由于无法降级为http必须-e https://music.163.com

参数配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ unblockneteasemusic -h
usage: unblockneteasemusic [-v] [-p port] [-a address] [-u url] [-f host]
[-o source [source ...]] [-t token] [-e url] [-s]
[-h]

optional arguments:
-v, --version output the version number
-p port, --port port specify server port
-a address, --address address specify server host
-u url, --proxy-url url request through upstream proxy
-f host, --force-host host force the netease server ip
-o source [source ...], --match-order source [source ...]
set priority of sources
-t token, --token token set up proxy authentication
-e url, --endpoint url replace virtual endpoint with public host
-s, --strict enable proxy limitation
-h, --help output usage information

其他配置问题可参考Github Issue中的说明

使用代理模式解锁音乐

若将服务部署到公网,强烈建议使用严格模式 (此模式下仅放行网易云音乐所属域名的请求) -s 限制代理范围 (需使用 PAC 或 hosts),以防代理被他人滥用

Windows

在网易云客户端的设置-工具选项中设置自定义代理,模式选择HTTP代理,服务器和端口分别填写对应的ip(或域名)与端口号

UWP

Windows 设置 > 网络和 Internet > 代理 中设置代理,建议使用自动模式并使用pac
脚本地址为http://yoururl:port/proxy.pac

由于UWP应用存在网络隔离,需手动开启loopback才能使用,类似问题: Windows10下Edge浏览器等UWP应用无法连接到代理服务器的解决方案

请以管理员身份执行命令:

1
checknetisolation loopbackexempt -a -n="1F8B0F94.122165AE053F_j2p0p5q0044a6"

Android

PAC

WLAN > 修改网络 > 高级选项 > 代理中进行设置,建议使用自动模式并使用pac

由于网易云app的原因Android下无法通过修改hosts使用

部分安卓设备存在运行一定时间后不走pac的情况,可以使用下面的方法配合Clash for Android进行使用

Clash

使用Clash可以无视wifi或者流量使得网易云走代理,在这里列举一下一些配置文件的要点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
mode: Rule
proxies:
- { name: "UnblockNeteaseMusic_Network", type: http, server: YOUR SERVER, port: YOUR PORT }
proxy-groups:
- { name: "UnblockNeteaseMusic", type: url-test, proxies: ["UnblockNeteaseMusic_Network"], url: "http://www.gstatic.com/generate_204", interval: 60 }
rules:
- DOMAIN-SUFFIX,music.163.com,UnblockNeteaseMusic
- DOMAIN-SUFFIX,interface.music.163.com,UnblockNeteaseMusic
- DOMAIN-SUFFIX,interface3.music.163.com,UnblockNeteaseMusic
- DOMAIN-SUFFIX,apm.music.163.com,UnblockNeteaseMusic
- DOMAIN-SUFFIX,apm3.music.163.com,UnblockNeteaseMusic
- DOMAIN-SUFFIX,man.netease.com,UnblockNeteaseMusic
- DOMAIN-SUFFIX,api.iplay.163.com,UnblockNeteaseMusic
- IP-CIDR,39.105.63.80/32,UnblockNeteaseMusic
- IP-CIDR,45.254.48.1/32,UnblockNeteaseMusic
- IP-CIDR,47.100.127.239/32,UnblockNeteaseMusic
- IP-CIDR,59.111.160.195/32,UnblockNeteaseMusic
- IP-CIDR,59.111.160.197/32,UnblockNeteaseMusic
- IP-CIDR,59.111.181.35/32,UnblockNeteaseMusic
- IP-CIDR,59.111.181.38/32,UnblockNeteaseMusic
- IP-CIDR,59.111.181.60/32,UnblockNeteaseMusic
- IP-CIDR,101.71.154.241/32,UnblockNeteaseMusic
- IP-CIDR,103.126.92.132/32,UnblockNeteaseMusic
- IP-CIDR,103.126.92.133/32,UnblockNeteaseMusic
- IP-CIDR,112.13.119.17/32,UnblockNeteaseMusic
- IP-CIDR,112.13.122.1/32,UnblockNeteaseMusic
- IP-CIDR,115.236.118.33/32,UnblockNeteaseMusic
- IP-CIDR,115.236.121.1/32,UnblockNeteaseMusic
- IP-CIDR,118.24.63.156/32,UnblockNeteaseMusic
- IP-CIDR,193.112.159.225/32,UnblockNeteaseMusic
- IP-CIDR,223.252.199.66/32,UnblockNeteaseMusic
- IP-CIDR,223.252.199.67/32,UnblockNeteaseMusic

配置好的文件可以放在服务器上方便通过URL添加使用

Linux / macOS

Ubuntu下使用系统设置 > 网络 > 网络代理,macOS下使用系统偏好设置 > 网络 > 高级 > 代理来设置代理

自签证书

由于Linux客户端1.2以上版本及macOS客户端700以上版本无法通过握手后返回空数据的方式降级https请求使用http接口,需要进行自签证书。自签证书过程参考这里,现ubuntu为例进行信任证书添加:

1
2
3
4
5
6
7
8
9
10
$ ~/Downloads$ sudo cp ca.crt /usr/local/share/ca-certificates/
$ ~/Downloads$ sudo update-ca-certificates

Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

Adding debian:ca.pem
done.
done.

增加默认启动参数

自签完成后,启动客户端需要增加--ignore-certificate-errors参数

1
2
3
$ /usr/share/applications$ ls | grep netease
netease-cloud-music.desktop
$ /usr/share/applications$ sudo vim netease-cloud-music.desktop

在Exec这行末尾增加--ignore-certificate-errors参数

IOS

IOS下的配置方式我并未试过,在此仅搬运issue中的一些总结

另外可以采用配置 https endpoint 转发音源的方法免除安装证书的过程,具体详见:

--- 本文结束 The End ---