Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS 食用指南 #65

Open
u3u opened this issue May 1, 2019 · 166 comments
Open

iOS 食用指南 #65

u3u opened this issue May 1, 2019 · 166 comments
Labels
pinned Something is important

Comments

@u3u
Copy link
Contributor

u3u commented May 1, 2019

项目作者注: 此方案使用公网可信任 https endpoint 解决可以匹配但无法播放的问题
如 README 中描述,解决方法不唯一,具体见 #56 "✳ 配置 https 转发" 部分

前提步骤(小白请点这里,老司机请绕道)

下面的命令按照顺序复制执行即可

安装 Node.js

# 先安装 nvm 方便管理多版本 node
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash

# 然后再安装 node
NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/ nvm install 8.9.0

# 测试
node -v

安装 Yarn [可选]

# 先安装 yvm 方便管理多版本 yarn
curl -s https://raw.githubusercontent.com/tophat/yvm/v2.4.3/scripts/install.sh | INSTALL_VERSION="v3.6.2" bash

# 然后再安装 yarn
yvm install latest

# 测试
yarn -v

安装 PM2 用于部署服务

yarn global add pm2 # 或者使用 npm -g install pm2

克隆并进入项目根目录

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

修改服务器配置推荐使用 VSCode 配合 Remote Development 扩展使用

方法一:使用证书

安装新的 CA 证书,设备上点击链接应该会自动跳转

https://raw.githubusercontent.com/nondanee/UnblockNeteaseMusic/master/ca.crt

在设置 > 通用 > 关于本机 > 证书信任设置,手动信任证书

官方教程:https://support.apple.com/zh-cn/HT204477

启动服务

测试服务:

# 启动命令改为 node app.js -p port1:port2 (port2 是用来内部转发的 https 端口)
node app.js -s -e https://music.163.com -p 8080:8081

使用 pm2 部署:

pm2 start app.js --name UnblockNeteaseMusic -- -s -e https://music.163.com -p 8080:8081
pm2 常用命令
pm2 stop UnblockNeteaseMusic # 停止服务
pm2 restart UnblockNeteaseMusic # 重启服务
pm2 pull UnblockNeteaseMusic # 更新服务到最新代码
pm2 show UnblockNeteaseMusic # 查看服务的参数信息
pm2 log UnblockNeteaseMusic # 查看服务日志
pm2 ls # 查看已部署的服务列表
pm2 monit # 监控服务状态
pm2 flush # 清理所有日志文件
pm2 update # 更新 pm2 状态

方法二:配置 https endpoint 转发音源

配置 Nginx 转发音源

server {
  listen 443;
  server_name your_domain; # 改为你自己的域名

  ssl on;
  ssl_certificate 1_your_domain_bundle.crt; # 改为自己申请得到的 crt 文件的名称
  ssl_certificate_key 2_your_domain.key; # 改为自己申请得到的 key 文件的名称
  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:https://localhost:8080; # 代理到 Unblock 服务地址
  }
}

启动服务

测试服务:

node app.js -s -e https://<转发音源的域名>

使用 pm2 部署:

# 香港服务器需要指定 `-o joox` 参数
pm2 start app.js --name UnblockNeteaseMusic -- -s -e https://<转发音源的域名> -o joox

下载 Shadowrocket 并配置 Unblock 代理

项目作者注: 没有强制要求 Shadowrocket,设置 WLAN 代理也可以

  • 右上角加号添加节点
  • 类型选择 HTTP
  • 服务器填写你的服务器公网 IP
  • 端口填写你启动服务的端口号(默认为 8080)
  • 然后底部找到配置 点击本地文件 -> default.conf -> 编辑配置
  • 添加三条规则 选项选择你刚刚添加的节点
    • USER-AGENT: NeteaseMusic*
    • DOMAIN-SUFFIX: 163.com
    • DOMAIN-SUFFIX: 126.net

可以在腾讯云申请免费 SSL 证书:https://console.cloud.tencent.com/ssl

常见问题

网络不给力
  • 如果你使用证书,请检查证书是否已信任:https://support.apple.com/zh-cn/HT204477
  • 如果你使用 https endpoint 转发音源,请检查你的启动参数是否正确(不要指定第二个端口号)
歌曲不存在
  • 歌曲不存在应该是资源库里面没有匹配到,你可以尝试换几首热门歌曲测试
u3u added a commit to u3u/UnblockNeteaseMusic that referenced this issue May 1, 2019
@nondanee nondanee added the pinned Something is important label May 2, 2019
@u3u

This comment has been minimized.

@u3u

This comment has been minimized.

@459217974
Copy link

所以ios使用是要一直开着VPN嘛,这样不会比较耗电嘛

@u3u

This comment has been minimized.

@onewayticket255
Copy link

请问一下 你的iOS网易云客户端版本号

@zqcccc
Copy link

zqcccc commented May 6, 2019

ios 就是刚打开应用的那一会可以用,听了一首歌就不行了,就是按照指南来弄的,电脑很稳定

@u3u

This comment has been minimized.

@u3u

This comment has been minimized.

@violarulan
Copy link

安卓也有类似的症状:刚打开的一会儿可以用,过一会儿就不行了(不会走代理了)

目前是路由器 dnsmasq 指定解析,设备使用路由器递归 dns。

本地解析 httpdns 的域名有两个 ip 结果,在路由器已屏蔽。

所以我怀疑是不是其有其他 httpdns,或者其他类似机制在客户端内部更新解析。

改日我抓包一下看看

@Nannnnnnnn
Copy link

node app.js -e https://your_domain
HTTP Server running @ http:https://0.0.0.0:8080
MITM > 59.111.160.195
TUNNEL - 59.111.160.195:443
MITM > 59.111.160.195
TUNNEL - 59.111.160.195:443
TUNNEL - 59.111.160.195:443
MITM > 59.111.160.195
MITM > 59.111.160.195
TUNNEL - 59.111.160.195:443
MITM > 59.111.160.195
TUNNEL - 59.111.160.195:443
MITM > 59.111.160.195
TUNNEL - 59.111.160.195:443
MITM > 59.111.160.195
TUNNEL - 59.111.160.195:443
MITM > 59.111.160.195
TUNNEL - 59.111.160.195:443
MITM > 59.111.160.195
TUNNEL - 59.111.160.195:443

一直这样循环....

server {
  listen 443;
  server_name your_domain;

  ssl on;
  ssl_certificate /usr/local/nginx/conf/ssl/1_your_domain_bundle.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/2_your_domain.key;
  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:https://localhost:8080; # 代理到 Unblock 服务地址
    }

}

nginx配置大概这样...

@app-AZ
Copy link

app-AZ commented May 12, 2019

亲测成功,推荐大家在VPS上用宝塔面板,一键安装LNMP,然后建站,申请个低价域名,第一年最多也就10RMB,宝塔支持申请https免费ssl证书,期限是一年,强制https,而且Nginx直接有配置选项,不用麻烦找,在宝塔安装pm2管理器,后台运行node项目更方便。整个流程下来,除了申请域名需要实名认证审核需要一天多时间,其他copy老哥代码基本是傻瓜式操作,我用的jp服务器,512M内存Centos 7,10G硬盘,既用来FQ又挂网易云,完全够用。
QQ截图20190512210915
QQ截图20190512211010
QQ截图20190512211207
QQ截图20190512211604

@1047958328
Copy link

前面两个怎么弄啊,小白根本看不懂啊~给个详细教程好么?

@HeavyLuna
Copy link

我发现一个BUG,在IOS端的歌手的所有歌曲列表是灰色的,但是在专辑列表里是能播放的。
微信图片_20190517114006
微信图片_20190517115109

@onewayticket255
Copy link

#65 (comment)

iOS的热门单曲链接和其他平台不一样。不过不是很影响使用。

@HeavyLuna
Copy link

#65 (comment)

iOS的热门单曲链接和其他平台不一样。不过不是很影响使用。

我之前一直都在拿那个界面测试。。。测试到绝望。。。后来才发现在专辑里能正常听。。。。

@1047958328
Copy link

#65(评论)

iOS版的热门单曲链接和其他平台不一样。不过不是很影响使用。

大神,怎么弄的啊,求教~

@HeavyLuna
Copy link

#65(评论)
iOS版的热门单曲链接和其他平台不一样。不过不是很影响使用。

大神,怎么弄的啊,求教~

可以无视就好了,去专辑里听,或者去专辑里下载。

@nondanee
Copy link
Owner

@Anopia
是个 BUG,以后这样的问题新开一个 issue 吧(明晚修)

@nondanee
Copy link
Owner

nondanee commented May 18, 2019

我试了下,网易云 iOS 6.2.0 不转发音源就可以用==
使用 WLAN 代理,手动和自动都行
不对,仅限网易自己的源,QQ 的还是要转发==

@1047958328
Copy link

我试了下,网易云 iOS 6.2.0 不转发音源就可以用==
使用 WLAN 代理,手动和自动都行
不对,仅限网易自己的源,QQ 的还是要转发==

大佬,针对小白搞一个教程可以么,ios,真心不会操作啊

@nondanee
Copy link
Owner

@1047958328
没有域名的话不建议折腾
有域名要签证书的话推荐用 acme.sh 比较方便,nginx 配置直接复制上面 @u3u 就行了
我没有义务什么都教啊(这其实就是搭建网站的步骤,善用搜索)

@solxnp
Copy link

solxnp commented Jul 3, 2020

按照要求设置,ios小飞机开启后,网易云音乐无法连接:访问任何连接、歌单都是无效(windows电脑上正常),配置如下:
1、自己的服务器上git clone
2、安装nodejs
3、项目根目录启动服务:node app.js -s -e https://music.163.com -p 8080:8081
4、iphone安装证书并信任
5、设置小飞机规则
6、小飞机添加服务器ip和8080端口
7、小飞机全局路由设置为【配置】
8、打开网易云,无法访问任何歌单
9、windows电脑上网易云代理录入服务器ip和8080端口,一切都可以正常使用

@HZZformGD
Copy link

按照要求设置,ios小飞机开启后,网易云音乐无法连接:访问任何连接、歌单都是无效(windows电脑上正常),配置如下:
1、自己的服务器上git clone
2、安装nodejs
3、项目根目录启动服务:node app.js -s -e https://music.163.com -p 8080:8081
4、iphone安装证书并信任
5、设置小飞机规则
6、小飞机添加服务器ip和8080端口
7、小飞机全局路由设置为【配置】
8、打开网易云,无法访问任何歌单
9、windows电脑上网易云代理录入服务器ip和8080端口,一切都可以正常使用

我也一样 现在用局域网模式(代码我放在自己的小服务器上) mac 安卓 ios 都可以使用 但是想使用4g的时候 使用小飞机照着教程设置 却无法使用 不知道为什么 手机上的证书安装了也都信任了

@zsbai
Copy link

zsbai commented Jul 10, 2020

mac网络无法连接歌曲一直跳,ios端正常使用,没搞懂

@solxnp
Copy link

solxnp commented Jul 21, 2020

用的是方法一:小飞机已配置规则;证书已安装(两处)
但是ios打开网易云依旧是整个app都没有网络
服务端日志大都如下
HTTP Server running @ http:https://0.0.0.0:8080
HTTPS Server running @ http:https://0.0.0.0:8081
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.9
MITM > 240.0.0.10
MITM > interface3.music.163.com
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.9
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.9
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.9
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10
MITM > 240.0.0.10

@daocoder2
Copy link

daocoder2 commented Sep 5, 2020

汇总下。

服务对象:有公网服务器,会docker使用的同学。

docker 安装自行百度吧。

启动命令:

docker run -d -p 5553:8080 --name music nondanee/unblockneteasemusic -s -e https://music.163.com -p 8080:8081

然后本地代理设置:公网ip 端口5553

ios食用过程:

安装新的 CA 证书,safari浏览器点击链接应该会自动跳转下载,一路安装信任

https://raw.githubusercontent.com/nondanee/UnblockNeteaseMusic/master/ca.crt

在设置 > 通用 > 关于本机 > 证书信任设置,手动信任证书

官方教程:https://support.apple.com/zh-cn/HT204477

unblock* 信任这个证书

@SpeedPartner
Copy link

SpeedPartner commented Jan 15, 2021

问下,由于本人想部署在家的OpenWrt路由器上,但碍于国内家用宽带基本都封了常用网页端口(80,8080,443):
1.endpoint转发方案启动端口是否必须是8080?
2.在-e https://下,https网站的端口是否必须在443?
以上问题已解决,都可以部署在自定义端口,比如该项目端口部署在端口5200,Nginx的https端口部署在4443,目前已经成功部署在路由器上,IOS在蜂窝移动网络下也可以正常使用了,另外感谢题主的Shadowrocket规则,endpoint反代终于可以了.

@Choicc
Copy link

Choicc commented Mar 11, 2021

问下,由于本人想部署在家的OpenWrt路由器上,但碍于国内家用宽带基本都封了常用网页端口(80,8080,443):
1.endpoint转发方案启动端口是否必须是8080?
2.在-e https://下,https网站的端口是否必须在443?
以上问题已解决,都可以部署在自定义端口,比如该项目端口部署在端口5200,Nginx的https端口部署在4443,目前已经成功部署在路由器上,IOS在蜂窝移动网络下也可以正常使用了,另外感谢题主的Shadowrocket规则,endpoint反代终于可以了.

你好,请教一下,像你这么配置,启动命令是否为 node app.js -s -e https://music.163.com -p 5200:4443 ,Shadowrocket配置端口为5200?

@SpeedPartner
Copy link

问下,由于本人想部署在家的OpenWrt路由器上,但碍于国内家用宽带基本都封了常用网页端口(80,8080,443):
1.endpoint转发方案启动端口是否必须是8080?
2.在-e https://下,https网站的端口是否必须在443?
以上问题已解决,都可以部署在自定义端口,比如该项目端口部署在端口5200,Nginx的https端口部署在4443,目前已经成功部署在路由器上,IOS在蜂窝移动网络下也可以正常使用了,另外感谢题主的Shadowrocket规则,endpoint反代终于可以了.

你好,请教一下,像你这么配置,启动命令是否为 node app.js -s -e https://music.163.com -p 5200:4443 ,Shadowrocket配置端口为5200?


node app.js -s -e https://MyDomain:4443 -p 5200 像这样,网页得设置反代回5200

@sean908
Copy link

sean908 commented Mar 13, 2021

问下,由于本人想部署在家的OpenWrt路由器上,但碍于国内家用宽带基本都封了常用网页端口(80,8080,443):
1.endpoint转发方案启动端口是否必须是8080?
2.在-e https://下,https网站的端口是否必须在443?
以上问题已解决,都可以部署在自定义端口,比如该项目端口部署在端口5200,Nginx的https端口部署在4443,目前已经成功部署在路由器上,IOS在蜂窝移动网络下也可以正常使用了,另外感谢题主的Shadowrocket规则,endpoint反代终于可以了.

请问是在路由器上手动跑了该项目吗?
我刷的别人修改的openwrt, 直接带该功能, 不过电脑可以用, iOS设备用不了.
困惑中

@SpeedPartner
Copy link

请问是在路由器上手动跑了该项目吗?
我刷的别人修改的openwrt, 直接带该功能, 不过电脑可以用, iOS设备用不了.
困惑中

是的,不过我用的是这个luci插件,可以设置大部分参数,另外需要修改插件的脚本,把启动命令中的https端口参数删掉才能用单个http端口+endpoint到自定义域名端口.
https://github.com/immortalwrt/luci-app-unblockneteasemusic

@suhiymof
Copy link

suhiymof commented Mar 26, 2021

qnap 直接docker安装nondanee/unblockneteasemusic,参数填-e https://music.163.com -p 8080:8081,IOS,连上wifi设置手动http,可以点亮也可以听,但是关掉wifi用小火箭必须要开全局代理才行,对了我不需要证书全局模式也可以听,用配置模式就不行
下面这些都做了配置模式也不行这是什么原因:
然后底部找到配置 点击本地文件 -> default.conf -> 编辑配置
添加三条规则 选项选择你刚刚添加的节点
USER-AGENT: NeteaseMusic*
DOMAIN-SUFFIX: 163.com
DOMAIN-SUFFIX: 126.net

github-actions bot pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Jul 29, 2021
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
LynnL4 pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Aug 11, 2021
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
LynnL4 pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Aug 11, 2021
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
LynnL4 pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Aug 12, 2021
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
LynnL4 pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Aug 12, 2021
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
github-actions bot pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Aug 13, 2021
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
github-actions bot pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Aug 13, 2021
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
github-actions bot pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Aug 13, 2021
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
github-actions bot pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Aug 17, 2021
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
github-actions bot pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Sep 1, 2021
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
github-actions bot pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Sep 2, 2021
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
@kuangkuang1
Copy link

亲测成功,推荐大家在VPS上用宝塔面板,一键安装LNMP,然后建站,申请个低价域名,第一年最多也就10RMB,宝塔支持申请https免费ssl证书,期限是一年,强制https,而且Nginx直接有配置选项,不用麻烦找,在宝塔安装pm2管理器,后台运行node项目更方便。整个流程下来,除了申请域名需要实名认证审核需要一天多时间,其他copy老哥代码基本是傻瓜式操作,我用的jp服务器,512M内存Centos 7,10G硬盘,既用来FQ又挂网易云,完全够用。 QQ截图20190512210915 QQ截图20190512211010 QQ截图20190512211207 QQ截图20190512211604

能提供一下完整的nginx配置文件看一下吗,域名你删了就行

@SpeedPartner
Copy link

亲测成功,推荐大家在VPS上用宝塔面板,一键安装LNMP,然后建站,申请个低价域名,第一年最多也就10RMB,宝塔支持申请https免费ssl证书,期限是一年,强制https,而且Nginx直接有配置选项,不用麻烦找,在宝塔安装pm2管理器,后台运行node项目更方便。整个流程下来,除了申请域名需要实名认证审核需要一天多时间,其他copy老哥代码基本是傻瓜式操作,我用的jp服务器,512M内存Centos 7,10G硬盘,既用来FQ又挂网易云,完全够用。 QQ截图20190512210915 QQ截图20190512211010 QQ截图20190512211207 QQ截图20190512211604

能提供一下完整的nginx配置文件看一下吗,域名你删了就行

问谁?

github-actions bot pushed a commit to Seeed-Studio/seeed-linux-openwrt that referenced this issue Feb 14, 2022
以解决苹果iOS和MacOS下无法使用的问题。参考nondanee/UnblockNeteaseMusic#65
@223333
Copy link

223333 commented Sep 17, 2022

ios用https endpoint成功搞定了,美滋滋

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pinned Something is important
Projects
None yet
Development

No branches or pull requests