Rat's

使用UnblockNeteaseMusic播放网易云音乐客户端无版权歌曲
说明:UnblockNeteaseMusic是一款可以给你解除网易云音乐海外限制并解锁变灰(无版权)歌曲的工具,让...
扫描右侧二维码阅读全文
29
2019/04

使用UnblockNeteaseMusic播放网易云音乐客户端无版权歌曲

说明:UnblockNeteaseMusic是一款可以给你解除网易云音乐海外限制并解锁变灰(无版权)歌曲的工具,让你可以听取客户端任何的歌曲,而不受到限制,此前该类似工具挺多的,不过貌似都不维护或者失效了,这里提到的项目更新很频繁,支持WindowsMacOS、安卓、IOS等设备,所以就分享一下使用方法。

截图

请输入图片描述
请输入图片描述

特性

  • 使用网易云旧链/QQ/虾米/百度/酷狗/酷我/咕咪/JOOX音源替换变灰歌曲链接(默认仅启用前四)。
  • 为请求增加X-Real-IP参数解锁海外限制,支持指定网易云服务器IP,支持设置上游HTTP/HTTPS代理。
  • 完整的流量代理功能(HTTP/HTTPS),可直接作为系统代理(同时支持PAC)。

安装

Github地址:https://github.com/nondanee/UnblockNeteaseMusic

1、安装Nodejs

#Debian/Ubuntu系统
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt install -y nodejs git 

#CentOS系统
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install nodejs git -y

2、运行UnblockNeteaseMusic

git clone https://github.com/nondanee/UnblockNeteaseMusic.git
cd UnblockNeteaseMusic
node app.js

运行端口默认为8080,需要想修改可以编辑app.js文件的config.port对应的数值,或者使用命令:

#这里默认修改4567,自行调整
node app.js -p 4567

这里还可以加一个-s参数限制代理范围防止被滥用,也就是仅放行网易云音乐所属域名的请求,不过使用起来的话就受限了,仅支持PACHosts

node app.js -s

3、开机自启
这里使用Systemd进程守护,只适用于CentOS 7Debian 8+Ubuntu 16+等。

#修改下ExecStartPre源码路径即可,然后一起复制到SSH运行
cat > /etc/systemd/system/UnblockNeteaseMusic.service <<EOF
[Unit]
Description=UnblockNeteaseMusic
After=network.target
Wants=network.target

[Service]
Type=simple
PIDFile=/var/run/UnblockNeteaseMusic.pid
WorkingDirectory=/root/UnblockNeteaseMusic
ExecStart=$(command -v node) app.js -p 4567
RestartPreventExitStatus=23
Restart=always

[Install]
WantedBy=multi-user.target
EOF

启动并开机自启:

systemctl start UnblockNeteaseMusic
systemctl enable UnblockNeteaseMusic

如果没有Systemd的,比如CentOS 6Debian 7等,直接使用rc.local,使用命令:

#路径和命令自行修改
sed -i '/exit/d' /etc/rc.local
echo "cd /root/UnblockNeteaseMusic && node app.js -p 4567" >> /etc/rc.local

Docker安装

1、安装Docker

#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

2、运行镜像

docker run --restart=always --name unmusic -d -p 4567:8080 nondanee/unblockneteasemusic

运行端口4567,自行修改。

使用

提示:使用方法可以选择修改Hosts或者设置代理的方式,自己挑选一种比较会的吧。

1、修改Hosts
找到Hosts路径,大致位置:

Windows系统:位于C:\Windows\System32\drivers\etc\hosts
Android系统:位于/system/etc/hosts
Mac系统:位于/etc/hosts
IOS系统:位于/etc/hosts
Linux系统:位于/etc/hosts

hosts文件添加两条规则

#将前面参数修改为服务器IP
<Server IP> music.163.com
<Server IP> interface.music.163.com

使用此方法必须监听80端口,也就是使用-p 80参数指定80端口运行。

2、设置代理
安卓系统:

#设置方法
手机设置 > WLAN > 网络设置 > 高级选项 > 代理

一般安卓手机设置代理类型的时候分2种,手动代理和自动代理,有的手机可能只有手动代理,大致设置如下:
手动代理 > 只需要填上你的服务器IP和端口就可以了。
自动代理 > 填上你的PAC地址就行了,地址:http://<Server Name:PORT>/proxy.pac,修改为你的ip、运行端口。

如果你发现设置后不能使用或者出现其它网络问题,带了-s参数的不妨去掉后再试试。

Windows系统:

#设置方法
网易云客户端设置 > 工具 > 自定义代理 > HTTP代理

这里只需要填上你的服务器ip和端口,保存即可。

IOS系统:
这里很久前有人要博主详细说下IOS使用方法,对于不会设置的是挺复杂的,所以就截图说下,需要借助Shadowrocket工具。

#设置方法
打开小火箭 > 添加节点(类型选择HTTP,输入你的ip和端口,随便备注下,右上角完成即可) > 编辑配置 > 添加规则(类型选择USER-AGENT,选项选择网易云,用户代理输入NeteaseMusic*),保存即可。

请输入图片描述
macOS啥的,没设备就不测试了,直接列举下作者提供方法。

UWP    Windows设置 > 网络和Internet > 代理
Linux    系统设置 > 网络 > 网络代理
macOS    系统偏好设置 > 网络 > 高级 > 代理

设置好了后,你会发现客户端之前因为版权问题不能听的都可以听了,然后建议搭建的时候,选择的服务器网络延迟尽量好点,不然播放会很慢。

问题补充

1、如果设置好了后,打开客户端提示网络问题的话,稍等片刻就好了,如果过会还是不行,就检查下操作啥的,比如防火墙。

一般情况下CentOS防火墙还需要开启运行端口,比如博主用的4567,使用命令:

#CentOS 6
iptables -I INPUT -p tcp --dport 4567 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --reload

宝塔的话可以直接面板左侧-安全-开启对应的端口即可。

2、上面只提到了安卓WLAN下的使用方法,这里再补充个手机数据下的使用方法,建议配合Xndroid工具,最新版APP下载地址→传送门,大致设置如下:

打开Xndroid > 点击左侧Fqrouter > 添加个人代理(只需要填服务器ip和端口即可) > 代理列表配置项(将高级设置里面全部关掉) > 软件右上角代理设置(只代理网易云音乐)

设置完成后你还可以在右上角启动设置中,关掉xx-netfqrouter里面的所有启动项,这样开启软件速度也会快很多。

最后貌似很多妹子都喜欢用网易云,小伙伴们可以去喜欢的妹子面前装个逼,自己搭建好了,然后教她们点亮下灰色无版权歌曲。

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2019 年 09 月 04 日 11 : 30 PM

发表评论

233 条评论

  1. a

    重启docker start unmusic显示Error response from daemon: driver failed programming external connectivity on endpoint unmusic (8d38548f4814ed2ec1b901501ba25f5764eff9afac2b284493ffad041e8077d9): Error starting userland proxy: listen tcp 0.0.0.0:2333: bind: address already in use
    Error: failed to start containers: unmusic

    1. a
      @a

      这个端口不是已经被node启动app.js占用了嘛,还有防火墙被我关掉的,步骤中也没啥错误,但是网易云就一直连不上网

      1. Rat's
        @a

        是占用了,你这是手动方法和docker一起做了?

        1. a
          @Rat's

          解决了,原来是阿里云的问题,还得再控制台防火墙端口放行一下

        2. a
          @Rat's

          直接node app.js的话,网易云设置完代理也无网络连接。。

          1. MenheraChan
            @a

            能用就行了,测试过不去的锅得网易云背,端口通就可以了

  2. example

    为什么我搭建完了之后在windows上能用,在安卓最新客户端用不了呢,我看到github项目上说需要自签证书和脚本配合,请问是这个原因吗

    1. 小波
      @example

      安卓 wlan设置代理 或者选择 移动网络,移动接入点(APN),去新建一个APN接入点,代理填写服务器IP 和对应端口,就OK了

    2. Rat's
      @example

      貌似不需要,安卓你把我上面说的方法都试一下看看

  3. 小波

    搭建完以后,当用小火箭访问一下,YouTub以后,就会导致没网络,和-s 一样 是哪儿的问题

    1. Rat's
      @小波

      看你发的信息,好像没启动成功,你改下端口试试

      1. 小波
        @Rat's

        感谢大锅,问题所在找到了,就是因为是国外的服务器,然后访问一下国外的网站,比如谷歌啥的,就会导致在30秒到1分钟内没网,可能是坐着的源码有问题吧。 用国内的服务器完全不存在这个问题。

  4. 小波

    events.js:174

    throw er; // Unhandled 'error' event ^

    Error: listen EADDRINUSE: address already in use :::4567

    at Server.setupListenHandle [as _listen2] (net.js:1279:14) at listenInCluster (net.js:1327:12) at Server.listen (net.js:1414:7) at Promise.all.then.result (/root/UnblockNeteaseMusic/app.js:76:15) at process._tickCallback (internal/process/next_tick.js:68:7)

    Emitted 'error' event at:

    at emitErrorNT (net.js:1306:8) at process._tickCallback (internal/process/next_tick.js:63:19)
    1. Rat's
      @小波

      这个是端口被占用了。

  5. liu112

    如果是在群晖的Docker里面搭建的话,卷需要加载那些文件夹

    1. Rat's
      @liu112

      不需要咋加载。

  6. cllllllion

    可以考虑加上docker设置开机自启的部分,就更完美了,比如先新建/etc/rc.local,然后systemctl start rc-local,之后exit 0加上docker start unmusic这样子

    1. Rat's
      @cllllllion

      随便参考个文章好了,比如:https://www.moerats.com/archives/831/

  7. 夜皇

    debian9运行node app.js命令后提示错误-bash: node: command not found

    1. Rat's
      @夜皇

      nodejs没安装,或者你是centos?

  8. Lemoooon

    请问用docker运行以后,再重启,代理会失效,重新执行运行命令,系统还会报错 ,请问怎么回事

    1. Rat's
      @Lemoooon

      重启系统后,需要使用docker start unmusic重新启动容器。

      1. Lemoooon
        @Rat's

        安卓手机,使用自动代理的pac以后会出现解锁无效的情况,灰色的还是灰色的,相同的再使用手动HTTP代理就可以了。我使用的是docker方式,网易云也卸载重装,设备也重置过网络参数,一样无解

  9. 烫了个发

    歌曲提示加载失败怎么破

    1. Rat's
      @烫了个发

      这个问题不好回答,如果操作是对的,那可以向作者反馈下。反馈地址:https://github.com/nondanee/UnblockNeteaseMusic/issues

  10. Linon

    W: Failed to fetch http://ftp.debian.org/debian/dists/jessie-updates/InRelease Unable to find expected entry 'main/binary-amd64/Packages' in Release file (Wrong sources.list entry or malformed file)

    E: Some index files failed to download. They have been ignored, or old ones used instead.

    1. Rat's
      @Linon

      换个源,或者换debian 9。