UnblockNeteaseMusic icon indicating copy to clipboard operation
UnblockNeteaseMusic copied to clipboard

食用指南

Open nondanee opened this issue 6 years ago • 445 comments

应课代表 @theandychung 的 PR #21 增加详细使用教程 若仍有部署安装上的问题请在下方评论 改进意见、bug 反馈等请新开 issue

P.S. 参与讨论并解决了疑问之后,可以点右侧 Unsubscribe 取消提醒,以防邮箱爆满 P.P.S. clone 了旧代码的同学请定期 git pull 更新, fork 了旧代码的同学请定期 New pull request 同步

在 follow 下面的步骤之前,希望你已仔细阅读过 README 中的 "使用" 部分,对配置过程也有初步了解

本篇为基础配置,所有平台通用 README 中提到对部分平台客户端有额外要求,相关教程参考其它带有紫色 "pinned" 标签的 issue

nondanee avatar Oct 13 '18 05:10 nondanee

安装 Node.js

使用 Docker 的同学请忽略

Windows

Download | Node.js 下载 .msi 安装包并安装

macOS

Download | Node.js 下载 .pkg 安装包并安装

Linux

Installing Node.js via package manager | Node.js 参照教程安装 nodejs

当然用 macOS 的 Homebrew,Windows 的 Scoop 等包管理器安装也可以,根据个人喜好选择即可

Android 平台的终端模拟器如 Termux,NeoTerm 等也可以安装 Node.js,教程非常多,请善用搜索

nondanee avatar Oct 13 '18 05:10 nondanee

下载项目

使用 Docker,npx,npm 全局安装的同学请忽略

方法❶ 使用 Git 克隆

git clone https://github.com/nondanee/UnblockNeteaseMusic.git #克隆项目仓库
cd UnblockNeteaseMusic #进入项目根目录

方法❷ 下载源码压缩包

项目首页点击 Clone or download 绿色按钮,选择 Download ZIP 并解压 或在 Release 页面下载 Assets 中的 Source code (zip)Source code (tar.gz) 压缩包并解压

打开项目目录后

Windows 用户请按住 Shift 后点击右键,选择 "在此处打开 PowerShell 窗口(S)" macOS 用户可以借助 OpenInTerminal,Go2Shell 等工具快捷打开终端窗口

nondanee avatar Oct 13 '18 05:10 nondanee

~~安装依赖~~

不需要

启动方式

下述启动命令 node app.js 可以等效替换为

npx @nondanee/unblockneteasemusic
# npm i -g @nondanee/unblockneteasemusic
unblockneteasemusic
docker run [OPTIONS] nondanee/unblockneteasemusic

如果看不懂请直接忽略

nondanee avatar Oct 13 '18 05:10 nondanee

使用方法① (代理模式)

1. 直接启动

node app.js

2. 配置代理

各系统下的基础配置参见 README

  • PAC 模式

填写脚本地址 http://127.0.0.1:8080/proxy.pac

  • 全局代理模式

填写服务器地址 127.0.0.1 和端口号 8080

由于网易云 Windows 客户端的 Bug,测试代理会报错 "该代理不可使用",实际并不影响 看到 Server running @ http://0.0.0.0:8080 之后出现如 MITM > ... 的请求日志即配置成功

nondanee avatar Oct 13 '18 06:10 nondanee

使用方法② (hosts 模式)

1. 寻找网易云服务器的IP

ping music.163.com

得到类似 223.252.199.66 的IP

2. 向hosts文件添加记录

127.0.0.1 music.163.com
127.0.0.1 interface.music.163.com

Windows hosts C:\Windows\System32\drivers\etc\hosts Linux/macOS hosts /etc/hosts

3. 设置参数启动

node app.js -p 80 -f 223.252.199.66

若在 linux/macOS下报错 Error: listen EACCES 0.0.0.0:80 请加 sudo

nondanee avatar Oct 13 '18 06:10 nondanee

其它配置

参数可叠加

开启严格模式

node app.js -s ...

设置搜索的音源 (有序)

默认为 qq kuwo migu,排在越前优先级越高,启用越多网络开销越大

node app.js -o joox qq ...

使用自定义端口

node app.js -p 5000 ...

使用 jixun 的反代服务器

node app.js -f 79.137.38.20 ...

使用上游 http / https 代理

node app.js -u http://127.0.0.1:1080 ...

nondanee avatar Oct 13 '18 06:10 nondanee

这对于没有基础的人来说太难了,我用node.js里面的command通过 CD 进入目录来安装commander,然后输入 node app.js 它提示 Server running @ http://0.0.0.0:8080,可是通过客户端设置代理却说代理不可用

johoney avatar Oct 14 '18 02:10 johoney

能出个简易的视频教程吗?@nondanee,windows下真的不会弄

johoney avatar Oct 14 '18 02:10 johoney

@johoney 抱歉啊忘记说明了,Windows客户端设置代理报不可用是正常的😂,网易云自己的bug,只要running提示底下有新的代理请求日志就是成功了

nondanee avatar Oct 14 '18 05:10 nondanee

@nondanee 好的谢谢,已经成功解决了,不过我有个问题可以设置类似快捷启动的东西,然后打开这个就能迅速启动代理吗,我希望可以把它加入到shell:startup,这样就不用那么麻烦的启动了。记得之前这个项目是有exe的,不过最近失效了所以我才使用了这个最新的程序了。

johoney avatar Oct 20 '18 03:10 johoney

@johoney 因为 release 麻烦啊,所以不发可执行文件了😂 项目根目录里新建一个 .bat 文件,写入 node app,之后双击就可以启动了 或者在项目根目录执行 npm link,之后在命令行或者 win +r 里直接输入 unblockneteasemusic 就能启动

nondanee avatar Oct 20 '18 05:10 nondanee

@nondanee 太谢谢你了,开发者真棒!

johoney avatar Oct 20 '18 06:10 johoney

bat比较实用

johoney avatar Oct 20 '18 06:10 johoney

@nondanee 居然贴心的出了这么详细的图文教程拉过来猛抱抱~ 最近好像用之前打包好的文件不太稳定,新版不提供打包好的文件有点点不便。。 顺便问一下有办法在路由器里做启动么,省的每台设备都要启动一下。。

shugo-chara avatar Oct 21 '18 13:10 shugo-chara

@shugo-chara 只有文没有图😂 更新很频繁,打包太累了,有 node 环境的话你可以自己打包

npm install pkg
npm run pkg

额路由器上运行的话估计不太现实。。。局域网里找一台常开的电脑跑着就行了

nondanee avatar Oct 21 '18 13:10 nondanee

建议把这里的说明添加到 Wiki 里面,感觉大家不会来 Issue 里面找教程的。(逃走 ε=ε=ε=┏(゜ロ゜;)┛

spencerwooo avatar Oct 22 '18 02:10 spencerwooo

@spencerwoo98 因为写wiki里不好回复啊😥

nondanee avatar Oct 22 '18 10:10 nondanee

谢谢~~ 发现有个问题,走127.0.0.1:8080/proxy.pac自动代理的话,有时候正常运行,但是网易云提示无网络连接。终端里反馈都是https,并没有自动降级http。断开重连wifi,或者重启后又莫名好了。 mac系统,不定时出现。检查了网络和端口以及自动代理都无异常。

失败时:

Server running @ http://0.0.0.0:8080
HTTPS > https://music.163.com:443
HTTPS > https://music.163.com:443
HTTPS > https://music.163.com:443

重连或者重启或者等一阵子后:

HTTPS > https://music.163.com:443
HTTPS > https://music.163.com:443
HTTPS > https://scss.adobesc.com:443
HTTP > http://music.163.com
HTTP > http://music.163.com
HTTP > http://music.163.com
HTTPS > https://scss-prod-an1.adobesc.com:443
HTTP > http://music.163.com
HTTP > http://music.163.com
HTTP > http://music.163.com

难道是我网络环境问题吗?现在换的sony 2g光,速度应该没问题,而且之前用sb的光也有这个问题。

@nondanee

ps 现在几乎每天打开都会出现上述情况。。求助。

shugo-chara avatar Oct 23 '18 14:10 shugo-chara

@shugo-chara 不好意思了这周有两个midterm两个assignment,才空下来 遇到问题最好能新开一个 issue,我先在这里回你了 我测试了没有问题,是提示这个吗?还是别的?能不能录个屏? 2018-10-26 16 20 28 这个的话随便点别的地方再切换回来就好了

nondanee avatar Oct 26 '18 08:10 nondanee

@nondanee 哈哈我也刚忙完看到回复。就是你图里的样子,但是点哪里都提示载入中,然后过一会儿就是网络不给力。重装网易云和重新自带代理都不行。 解决方法就是要么等,等他自己跳回http,要么就重启或者断网重连。

shugo-chara avatar Nov 02 '18 11:11 shugo-chara

@shugo-chara 这个没办法了,代理是没办法直接控制程序的,只能等了

nondanee avatar Nov 03 '18 17:11 nondanee

----------------------------- 19.12.16 更新----------------------------- 网易云音乐 Mac 客户端更新 目标代理域名更新为:*.music.163.com;*.music.126.net;*.netease.com;

----------------------------- 19.06.28 更新-----------------------------

mac 搭配 Proxifier 配置参考

mac 需要使用 **https 代理 两个程序:NeteaseMusic;com.apple.WebKit.Networking 目标代理域名只需要写:*.music.163.com;*.music.126.net;*.netease.com; image

需要在所有客户端(mac, iPhone 等)安装仓库里的证书并设置信任(参考https://github.com/nondanee/UnblockNeteaseMusic/issues/65#issuecomment-493718439 ) 有人反映使用仓库的证书 iOS 不能正常使用,我使用的是自签证书 暂时没有问题。 服务端启动命令为 node app.js -p port1:port2,客户端需要使用的是 port1 端口(port2 是用来内部转发的 https 端口,随便写一个就行) 放在 VPS 上跑也一样,客户端安装并信任了证书就可以了

iOS 使用配置参考

iOS 上我使用的是 Shadowrocket (参考:https://github.com/nondanee/UnblockNeteaseMusic/issues/65#issue-439169649 )

  1. 右上角加号添加节点,填一个备注名比如 UnblockNetease
  2. 类型选择 HTTP (注意不是HTTPS)
  3. 服务器填写你搭建服务的 IP 地址
  4. 端口填写你启动服务的端口号 (就是 port1)
  5. 然后底部找到配置 点击本地文件 -> default.conf(你当前使用的配置) -> 编辑配置 -> 添加规则
  6. 添加下面三条规则,选项都选择刚添加的 UnblockNetease 节点,类型和用户代理/域名如下
  • USER-AGENT: NeteaseMusic*
  • DOMAIN-SUFFIX: music.163.com
  • DOMAIN-SUFFIX: music.126.net

PS. 记得安装证书并信任,添加了之后不行的话重置一下 Shadowrocket 再试

丢个链接,详细教程 https://www.sheyilin.com/2019/06/unblockneteasemusic/

gqbre avatar Nov 07 '18 04:11 gqbre

Windows碰到这种情况该怎么办呢?小白一个,只看得懂第二种方法,然而会直接报错...

G:\NeteaseMusic\UnblockNeteaseMusic-master>node app.js -p 80 -f 59.111.160.197
Server running @ http://0.0.0.0:80
events.js:167
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES 0.0.0.0:80
    at Server.setupListenHandle [as _listen2] (net.js:1269:19)
    at listenInCluster (net.js:1334:12)
    at Server.listen (net.js:1421:7)
    at Promise.all.then.result (G:\NeteaseMusic\UnblockNeteaseMusic-master\app.js:58:9)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Emitted 'error' event at:
    at emitErrorNT (net.js:1313:8)
    at process._tickCallback (internal/process/next_tick.js:63:19)

PLUSLEE avatar Nov 07 '18 15:11 PLUSLEE

@PLUSLEE 管理员身份启动命令行试一下,也检查一下80端口是否被其它程序使用

netstat -ano | find "80"

nondanee avatar Nov 07 '18 15:11 nondanee

@nondanee 谢谢,跑通了...客户端少了一步。万分感谢!从即刻App关注的“网路冷眼”微博上发现这个好东西

PLUSLEE avatar Nov 07 '18 16:11 PLUSLEE

我的使用情况是, 服务想安装在公网服务器上,但不能运行在80端口。——修改hosts文件方式不可用 本机运行一个SS客户端,系统代理已经被它的pac地址占据了——修改系统代理也不可用

SS的pac文件是工具生成的,所以还不好做修改 感觉需要一个工具串联不同代理了,不知道有没有这样的软件

daorren avatar Nov 15 '18 07:11 daorren

@daorren

  1. 好像无解
  2. SS 客户端,代理设置,编辑 pac 用户自定规则,试试看

gqbre avatar Nov 15 '18 07:11 gqbre

@gqbre 这个理论上没用的,SS的pac文件是用gfwlist2pac生成的,自定义规则那里只是配置了需要代理的数据项

daorren avatar Nov 15 '18 08:11 daorren

@daorren 有用的 楼上 @gqbre 是正解,编辑本地 PAC 文件,在 FindProxyForURL 里加 if 不过因为屏蔽了网易云的 HTTPS 请求,设为系统代理的话,网页版是用不了的,浏览器上要给网易云排除一下系统代理

桌面端代理这两个 host 就够了

if (host == 'music.163.com' || host == 'interface.music.163.com') {
	return 'PROXY <Server Name>:<Server PORT>'
}

当然你公网开的得是 http

nondanee avatar Nov 15 '18 08:11 nondanee

@nondanee 你的意思我理解,问题是SS客户端的pac文件我并不能直接编辑。 @gqbre 提供的方式我也试了,if代码块会最终会变成SS客户端生成pac文件里,filter数组中的几个元素

daorren avatar Nov 15 '18 08:11 daorren