Hi there
desperadoj.com

UnblockNeteaseMusic 使用方法

简介

UnblockNeteaseMusic 是一个解锁网易云音乐已下架歌曲的开源项目。

使用方法

下文的使用方法均基于 CentOS 7。

基本用法

安装 Node.js 和 PM2

curl -sL https://rpm.nodesource.com/setup_12.x | bash -
yum install nodejs -y
npm install pm2 -g

下载 UnblockNeteaseMusic

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

UnblockNeteaseMusic 的配置参数如下:

$ 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

运行 UnblockNeteaseMusic

# macOS, iOS, Linux
pm2 start app.js --name="https_endpoit" -- -s -p port1:port2 -o kuwo qq migu -e https://music.163.com
# Windows, Android
pm2 start app.js --name="http_endpoit" -- -s -p port1:port2 -o kuwo qq migu
# 保存进程
pm2 save
# 设置开机启动
pm2 startup

说明:

  1. 端口 -p port1:port2 和音源 -o kuwo qq migu 请根据自己需求修改。
  2. 由于新版 macOS / iOS / Linux 网易云音乐客户端强制检测音源是否为 HTTPS 路径,所以要对 macOS / iOS / Linux 与 Windows / Android 分开进行配置。
  3. 由于 JOOX 音源默认为 HTTPS 路径,若服务器可使用 JOOX 音源,将 JOOX 设为默认音源可以同时适用所有客户端:
    pm2 start app.js --name="general" -- -s -p port1:port2 -o joox
  4. 若部署在公网服务器上,强烈推荐使用 -s 参数开启严格模式,限制代理范围为仅网易云音乐解锁所需域名和 IP,防止被滥用盗用。
  5. 端口部分 -p port1:port2 的写法参考 这里
  6. 目前已知的使用 PAC 模式的 BUG 为:手机微博客户端无法刷出内容,原因不明。(已修复)

在系统代理填入以下地址,macOS / iOS / Linux 均需下载安装并信任 证书,Linux 启动客户端还需要增加 --ignore-certificate-errors 参数;Windows 需将网易云音乐客户端设置为「使用 IE 代理设置」。

http://server:port1/proxy.pac

音源选择

目前所有可选用的音源如下表

参数 音源 音质 描述
baidu 百度音乐 128kbps 曲库很少,不推荐使用
joox JOOX 音乐 320kbps 腾讯国际产品,曲库一般,仅限 香港,澳门,泰国,印尼,马来西亚,缅甸,南非 IP
kugou 酷狗音乐 128kbps 曲库很少,不推荐使用
kuwo 酷我音乐 320kbps 曲库全,对 IP 无限制
migu 咪咕音乐 320kbps 曲库一般,仅限大陆 IP
qq QQ 音乐 128kbps 曲库一般,仅限大陆 IP
xiami 虾米音乐 / 搜索接口被拦截要求移动滑块验证,目前不可用
  • 匹配准确度

经测试,kuwo>qq>migu≈joox

  • 推荐参数

大陆 IP:-o kuwo qq migu

非大陆 IP:-o kuwo joox

转发为 Shadowsocks

glider 是一个支持多种协议的代理转发软件。UnblockNeteaseMusic 只能提供 HTTP 代理,由于使用严格模式,需将代理进行分流,使用 glider 将 HTTP 转发为 Shadowsocks 协议后,适用的客户端也更加丰富。

服务端部署 glider

下载 glider

wget -N --no-check-certificate https://github.com/nadoo/glider/releases/download/v0.9.3/glider_0.9.3_linux_amd64.tar.gz

解压

tar zxvf glider_0.9.3_linux_amd64.tar.gz && cd glider_0.9.3_linux_amd64

复制二进制文件

cp glider /usr/bin/ && chmod +x /usr/bin/glider

创建配置文件,以适用于 macOS / iOS / Linux 为例

mkdir /etc/glider/ && vim /etc/glider/https-ss.conf

写入以下内容并保存,需自行修改加密方式 method,密码 password,Shadowsocks 监听的端口 port 及 UnblockNeteaseMusic 监听的端口 port1

# 开启调试模式,输出log
verbose=True

# Shadowsocks:
# Method:
#   AEAD Ciphers:
#     AEAD_AES_128_GCM AEAD_AES_192_GCM AEAD_AES_256_GCM AEAD_CHACHA20_POLY1305 AEAD_XCHACHA20_POLY1305
#   Stream Ciphers:
#     AES-128-CFB AES-128-CTR AES-192-CFB AES-192-CTR AES-256-CFB AES-256-CTR CHACHA20-IETF XCHACHA20 CHACHA20 RC4-MD5
#   Alias:
#     chacha20-ietf-poly1305 = AEAD_CHACHA20_POLY1305, xchacha20-ietf-poly1305 = AEAD_XCHACHA20_POLY1305
listen=ss://method:[email protected]:port

# 需转发的 UnblockNeteaseMusic HTTP 代理
forward=http://127.0.0.1:port1

通过 systemd 创建开机启动

vim /etc/systemd/system/glider-https-ss.service

写入以下内容并保存

[Unit]
Description=Glider UnblockNeteaseMusic Shadowsocks Service for macOS, iOS, Linux
After=network.target nss-lookup.target

[Service]
Type=simple
Restart=on-failure
LimitNOFILE=102400
CPUAccounting=yes
MemoryAccounting=yes

# NOTE: change to your glider path
ExecStart=/usr/bin/glider -config /etc/glider/https-ss.conf

# work with systemd v229 or later, so glider can listen on port below 1024 with none-root user
# CAP_NET_ADMIN: ipset
# CAP_NET_BIND_SERVICE: bind ports under 1024
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

启用 glider-https-ss.service

systemctl enable glider-https-ss.service

启动 glider-https-ss.service

systemctl start glider-https-ss.service

查看 glider-https-ss.service 状态

systemctl status glider-https-ss.service

客户端分流规则

以下规则均为 解锁网易云音乐+屏蔽客户端广告,其中服务器地址 server,端口 server,加密方式 cipher 及 密码 password 需自行修改。

  • Clash
port: 7890
socks-port: 7891
allow-lan: false
mode: Rule
log-level: info
external-controller: 127.0.0.1:9090
dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip
  nameserver:
    - 119.29.29.29
    - 223.5.5.5

Proxy:
  - name: Unblock
    type: ss
    server: server
    port: port
    cipher: cipher
    password: password

Proxy Group:
  - name: Netease Music
    type: select
    proxies:
      - Unblock
      - DIRECT

Rule:
  # Netease Music
  - DOMAIN,api.iplay.163.com,Netease Music
  - DOMAIN,apm3.music.163.com,Netease Music
  - DOMAIN,apm.music.163.com,Netease Music
  - DOMAIN,interface3.music.163.com,Netease Music
  - DOMAIN,interface.music.163.com,Netease Music
  - DOMAIN,music.163.com,Netease Music
  - IP-CIDR,39.105.63.80/32,Netease Music
  - IP-CIDR,45.254.48.1/32,Netease Music
  - IP-CIDR,47.100.127.239/32,Netease Music
  - IP-CIDR,59.111.160.195/32,Netease Music
  - IP-CIDR,59.111.160.197/32,Netease Music
  - IP-CIDR,59.111.181.35/32,Netease Music
  - IP-CIDR,59.111.181.38/32,Netease Music
  - IP-CIDR,59.111.181.60/32,Netease Music
  - IP-CIDR,101.71.154.241/32,Netease Music
  - IP-CIDR,103.126.92.132/32,Netease Music
  - IP-CIDR,103.126.92.133/32,Netease Music
  - IP-CIDR,112.13.119.17/32,Netease Music
  - IP-CIDR,112.13.122.1/32,Netease Music
  - IP-CIDR,115.236.118.33/32,Netease Music
  - IP-CIDR,115.236.121.1/32,Netease Music
  - IP-CIDR,118.24.63.156/32,Netease Music
  - IP-CIDR,193.112.159.225/32,Netease Music
  - IP-CIDR,223.252.199.66/32,Netease Music
  - IP-CIDR,223.252.199.67/32,Netease Music

  # Netease Music Advertising
  - DOMAIN,admusicpic.music.126.net,REJECT
  - DOMAIN,iadmat.nosdn.127.net,REJECT
  - DOMAIN,iadmusicmat.music.126.net,REJECT
  - DOMAIN,iadmusicmatvideo.music.126.net,REJECT

  # Final
  - MATCH,DIRECT
  • Surfboard
[General]
skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local
dns-server = 119.29.29.29, 223.5.5.5, 1.2.4.8, system

[Proxy]
Unblock = ss, server, port, cipher, password, udp-relay=false

[Proxy Group]
Netease Music = select, Unblock, DIRECT

[Rule]
# Netease Music
DOMAIN,api.iplay.163.com,Netease Music
DOMAIN,apm3.music.163.com,Netease Music
DOMAIN,apm.music.163.com,Netease Music
DOMAIN,interface3.music.163.com,Netease Music
DOMAIN,interface.music.163.com,Netease Music
DOMAIN,music.163.com,Netease Music
IP-CIDR,39.105.63.80/32,Netease Music
IP-CIDR,45.254.48.1/32,Netease Music
IP-CIDR,47.100.127.239/32,Netease Music
IP-CIDR,59.111.160.195/32,Netease Music
IP-CIDR,59.111.160.197/32,Netease Music
IP-CIDR,59.111.181.35/32,Netease Music
IP-CIDR,59.111.181.38/32,Netease Music
IP-CIDR,59.111.181.60/32,Netease Music
IP-CIDR,101.71.154.241/32,Netease Music
IP-CIDR,103.126.92.132/32,Netease Music
IP-CIDR,103.126.92.133/32,Netease Music
IP-CIDR,112.13.119.17/32,Netease Music
IP-CIDR,112.13.122.1/32,Netease Music
IP-CIDR,115.236.118.33/32,Netease Music
IP-CIDR,115.236.121.1/32,Netease Music
IP-CIDR,118.24.63.156/32,Netease Music
IP-CIDR,193.112.159.225/32,Netease Music
IP-CIDR,223.252.199.66/32,Netease Music
IP-CIDR,223.252.199.67/32,Netease Music

# Netease Music Advertising
DOMAIN,admusicpic.music.126.net,REJECT
DOMAIN,iadmat.nosdn.127.net,REJECT
DOMAIN,iadmusicmat.music.126.net,REJECT
DOMAIN,iadmusicmatvideo.music.126.net,REJECT

# Final
FINAL,DIRECT
  • Quantumult
[SERVER]
Netease Music = shadowsocks, server, port, cipher, "password", upstream-proxy=false, upstream-proxy-auth=false

[SOURCE]

[BACKUP-SERVER]

[SUSPEND-SSID]

[POLICY]

[DNS]
119.29.29.29, 223.5.5.5, 1.2.4.8, system

[REWRITE]

[URL-REJECTION]

[TCP]
# Netease Music
HOST,api.iplay.163.com,Netease Music
HOST,apm3.music.163.com,Netease Music
HOST,apm.music.163.com,Netease Music
HOST,interface3.music.163.com,Netease Music
HOST,interface.music.163.com,Netease Music
HOST,music.163.com,Netease Music
IP-CIDR,39.105.63.80/32,Netease Music
IP-CIDR,45.254.48.1/32,Netease Music
IP-CIDR,47.100.127.239/32,Netease Music
IP-CIDR,59.111.160.195/32,Netease Music
IP-CIDR,59.111.160.197/32,Netease Music
IP-CIDR,59.111.181.35/32,Netease Music
IP-CIDR,59.111.181.38/32,Netease Music
IP-CIDR,59.111.181.60/32,Netease Music
IP-CIDR,101.71.154.241/32,Netease Music
IP-CIDR,103.126.92.132/32,Netease Music
IP-CIDR,103.126.92.133/32,Netease Music
IP-CIDR,112.13.119.17/32,Netease Music
IP-CIDR,112.13.122.1/32,Netease Music
IP-CIDR,115.236.118.33/32,Netease Music
IP-CIDR,115.236.121.1/32,Netease Music
IP-CIDR,118.24.63.156/32,Netease Music
IP-CIDR,193.112.159.225/32,Netease Music
IP-CIDR,223.252.199.66/32,Netease Music
IP-CIDR,223.252.199.67/32,Netease Music

# Netease Music Advertising
HOST,admusicpic.music.126.net,REJECT
HOST,iadmat.nosdn.127.net,REJECT
HOST,iadmusicmat.music.126.net,REJECT
HOST,iadmusicmatvideo.music.126.net,REJECT

# Final
FINAL,DIRECT

[GLOBAL]

[HOST]

[STATE]
STATE,AUTO

[MITM]
  • Shadowrocket
[General]
bypass-system = true
skip-proxy = 192.168.0.0/16, 193.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, 127.0.0.1, 17.0.0.0/8, localhost, *.local
bypass-tun = 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.0.0.0/24, 192.0.2.0/24, 192.88.99.0/24, 192.168.0.0/16, 198.18.0.0/15, 198.51.100.0/24, 203.0.113.0/24, 224.0.0.0/4, 255.255.255.255/32
dns-server = 119.29.29.29, 223.5.5.5, 1.2.4.8, system

[Rule]
# Netease Music
DOMAIN,api.iplay.163.com,Netease Music
DOMAIN,apm3.music.163.com,Netease Music
DOMAIN,apm.music.163.com,Netease Music
DOMAIN,interface3.music.163.com,Netease Music
DOMAIN,interface.music.163.com,Netease Music
DOMAIN,music.163.com,Netease Music
IP-CIDR,39.105.63.80/32,Netease Music
IP-CIDR,45.254.48.1/32,Netease Music
IP-CIDR,47.100.127.239/32,Netease Music
IP-CIDR,59.111.160.195/32,Netease Music
IP-CIDR,59.111.160.197/32,Netease Music
IP-CIDR,59.111.181.35/32,Netease Music
IP-CIDR,59.111.181.38/32,Netease Music
IP-CIDR,59.111.181.60/32,Netease Music
IP-CIDR,101.71.154.241/32,Netease Music
IP-CIDR,103.126.92.132/32,Netease Music
IP-CIDR,103.126.92.133/32,Netease Music
IP-CIDR,112.13.119.17/32,Netease Music
IP-CIDR,112.13.122.1/32,Netease Music
IP-CIDR,115.236.118.33/32,Netease Music
IP-CIDR,115.236.121.1/32,Netease Music
IP-CIDR,118.24.63.156/32,Netease Music
IP-CIDR,193.112.159.225/32,Netease Music
IP-CIDR,223.252.199.66/32,Netease Music
IP-CIDR,223.252.199.67/32,Netease Music

# Netease Music Advertising
DOMAIN,admusicpic.music.126.net,REJECT
DOMAIN,iadmat.nosdn.127.net,REJECT
DOMAIN,iadmusicmat.music.126.net,REJECT
DOMAIN,iadmusicmatvideo.music.126.net,REJECT

# Final
FINAL,DIRECT
赞(9) 打赏
本文采用 CC BY-NC 4.0 进行许可,转载请注明出处:如风 » UnblockNeteaseMusic 使用方法

评论 17

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    试了下,想弄一个ios和非ios同时可用,但是iOS成功看,非ios失败,不清楚哪里错了

    danchawiPad | Safari 604.1 | 5个月前 (12-27)回复
    • 是下面这样设置的吗?iOS 和非 iOS 共用,音源只能选 JOOX
      pm2 start app.js --name="general" -- -s -p port1:port2 -o joox

      DesperadoJWindows 10 | Chrome 79.0.3945.88 | 5个月前 (12-27)回复
      • 谢谢,我去试试

        danchawiPad | Safari 604.1 | 5个月前 (12-27)回复
  2. #2

    多谢楼主分享!
    请教下,照着步骤弄好了,ios端虽然不是灰色了,但是好像还是不能播放,是不是因为主机是海外的原因,不能用kuwo?

    大肚子寻Windows 10 | Chrome 80.0.3987.132 | 3个月前 (03-15)回复
    • 用一台德国 VPS 做了测试,现在 qq 和 migu 的音源已经不支持海外 ip 了,但是 kuwo 可用。不过你 kuwo 也不能用,具体需要看一下 log

      DesperadoJWindows 10 | Chrome 80.0.3987.132 | 3个月前 (03-19)回复
  3. #3

    一步一步来的,能点亮,能正常搜索,但是就是播放一直加载中……

    Windows 10 | Chrome 83.0.4086.0 | 2个月前 (04-01)回复
    • 你的使用平台和解锁方式是什么?

      DesperadoJWindows 10 | Chrome 80.0.3987.149 | 2个月前 (04-01)回复
      • windows,http代理

        Windows 10 | Chrome 83.0.4090.0 | 2个月前 (04-02)回复
        • 请附上你启动 UnblockNeteaseMusic 的参数,和播放一直加载中时输出的 log

          DesperadoJWindows 10 | Chrome 80.0.3987.149 | 2个月前 (04-02)回复
  4. #4

    您好,请问glider里的forward配置中的端口,跟iOS的ss客户端的端口需要是一致的吗?我按上面的配置启动的glider服务,手机上用ss歌单看起来可用了,但是播放等很久提示播放信息错误。在手机网络里直接填unblock的代理地址是可以正常解锁播放变灰歌单的。请问问题可能处在哪里?感谢您的教程。

    ChuckMac OS X | Chrome 81.0.4044.122 | 1个月前 (04-29)回复
    • glider foward 中需要填写的端口是 UnblockNeteaseMusic 所监听的 port1,SS 客户端需要填写的端口是 listen=ss://method:[email protected]:port 这里的 port。iOS 客户端看起来可用,实际无法播放,可能是证书没有被导入并信任,建议你重新根据教程检查一下有没有遗漏的地方

      DesperadoJWindows 10 | Chrome 81.0.4044.113 | 1个月前 (05-02)回复
  5. #5

    环境 : 使用香港vps搭建 可以解锁灰色音乐 但是有一些疑问
    ios的port1与非ios的port1是不相同的么 ? (试了一下ios 的port1 port2 与非ios的port1 port2 貌似不能相同 但还是想像你确认一下)
    按照教程搭建线路 在quan x可以上使用 但是网络测试的时候发现 只有一个数值 56ms, – 这是什么原因呢 您分享的线路不会这样
    另外使用nginx转发音源 转发端口选择port1 还是port 2 在选port2 时 将-e https://music.163.com换成 -e https:// 时 pm2 创建之后status为erro 是怎麽回事呢
    望博主解答 感谢

    bsfcWindows 10 | Chrome 81.0.4044.129 | 1个月前 (05-02)回复
    • 1. 不相同
      2. QuanX 的测速原理导致的问题,第二个延迟为 httping,需要能正常访问测速页面才能成功测试延迟,而 UnblockNeteaseMusic 开启严格模式后不会允许这个请求通过。我提供的代理是做过一些小 trick 的,等我有空的时候会更新这篇博文做详细说明
      3. Nginx 转发选择 port1
      4. -e 指定域名 才是一个完整的参数

      DesperadoJWindows 10 | Chrome 81.0.4044.113 | 1个月前 (05-02)回复
  6. #6

    搭建在公司设备,做内网穿透应该没问题吧?

    liudehuaWindows 10 | Chrome 81.0.4044.92 | 4周前 (05-06)回复
    • 可以试试看,不过还是更建议搭在个人服务器上

      DesperadoJWindows 10 | Chrome 81.0.4044.113 | 4周前 (05-06)回复
  7. #7

    大佬,glider我想转接两个以上的http代理,配置文件应该怎么写?

    Ech0Windows 10 | Chrome 83.0.4103.61 | 6天前回复
    • 创建两个不同的service就行

      DesperadoJWindows 10 | Chrome 83.0.4103.61 | 4天前回复

觉得文章有用就打赏一下文章作者

微信扫一扫打赏