Closed a95788 closed 4 years ago
目前从日志来看能够匹配到音乐,但在IOS端就是不能播放,提示“网络不给力,无法继续播放” 我猜测应该是没有443转发到80端口。
我看你 unblockneteasemusic 开了 443,nginx 也开了 443 那么你说的这个是 nginx 的 443 还是 unblockneteasemusic 的 443? 两个都开应该应该有一个没法正常启动的吧
iOS 这个问题有说明 https://github.com/nondanee/UnblockNeteaseMusic/issues/56#issue-437081303 一共两种方法,二选一,都可以在 #65 中找到
实在是不知道如何使用80端口。
结合你的配置信息和你的 log 来看你其实一直都在用 80 端口啊
如果有流量通过 443(https) 端口 log 会显示 MITM > music.163.com (ssl)
不知道作者能不能将命令完整的说明一下。
确实比较分散,使用相对简单的在 #22 有说明,还有部分在 #56 #65 #48 中结合实际作用说明
所有的命令用 -h
可以看到,README 里有列出
具体什么意思怎么用直接看教程即可
我把所有 option 都解释一遍然后有一半你都用不到我不是白辛苦了
而且你都用脚本启动了,应该用不到命令啊,脚本都有提示的吧?
@nondanee 目前站点还没有备案,域名和服务器都是腾讯云的,现在正在被腾讯云阻断了,但域名能够正确解析到公网IP 我试着手动进入脚本安装的目录 /var/www/UnblockNeteaseMusic/ 然后手动启动 node app.js -s -e https://<转发音源的域名> -p 80 这样的话可以播放音乐,但部分音乐仍然不能播放,尤其是解析到非QQ的音源 (Log依然是 不带SSL或者443字样的)
同时,如果我的启动命令是 node app.js -s -e https://<转发音源的域名> -p 80:443 则会提示443端口被占用 通过查看端口占用情况,是Nginx正在占用443端口
现在我也不知道应该要怎么去进行443转发到80端口了。
附上最新修改的Nginx
server { listen 443 ; server_name 我自己注册的域名
ssl on; ssl_certificate /www/SSL/1.crt; ssl_certificate_key /www/SSL/2.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 / { proxypass http://0.0.0.0:80; } } }
如果KILL掉NGINX 然后在NODE APP.JS中加入 80:443的话能够成功运行,但一旦再运行NGINX就会杀掉NODE 。 在NODE独立运行后再运行nginx后的NGINX日志
如果通过小火箭使用,就可以成功播放。。但是这有点不太符合预期 而且TUNNEL并不是443或者SSL 还有 在添加了规则之后 代理模式必须选择 全局才可以播放,如果选择配置(我的小火箭有绕国内的PAC) 因此还是希望能够修改HOST文件达到效果,该怎么实现?
当我关掉Nginx后,似乎也不影响音源的转发呀。音乐照样能听,就很奇怪了呀。
@a95788
目前站点还没有备案,域名和服务器都是腾讯云的,现在正在被腾讯云阻断了,但域名能够正确解析到公网IP 我试着手动进入脚本安装的目录 /var/www/UnblockNeteaseMusic/ 然后手动启动 node app.js -s -e https://<转发音源的域名> -p 80 这样的话可以播放音乐,但部分音乐仍然不能播放,尤其是解析到非QQ的音源 (Log依然是 不带SSL或者443字样的)
域名被阻断了就没法转发了,这种方式你可以放弃了 也就是说QQ的音源可以播放?应该不能吧,你域名都连不通
但一旦再运行NGINX就会杀掉NODE
不可能吧, nginx 还有权限杀掉已经启动的 node?
同时,如果我的启动命令是 node app.js -s -e https://<转发音源的域名> -p 80:443 则会提示443端口被占用
都是 443 端口,nginx 和 unblockneteasemusic 两个之中肯定有一个没法启动啊
为什么已经开启了 https 监听 ( -p 80:443
) 后还要再用 nginx 转发呢?直接 -e https://music.163.com
啊
65 你没看吗?两种方法二选一啊,二选一啊,二选一啊,哪里有说一定要用 nginx 的?
原来是这样,那证书的话我要怎么指定?我已经覆盖了文件夹里面的key和crt证书。 这样还需要进行指定吗?其实我没理解的是,我现在用的是Host文件直接解析到我的服务器上,Host只能填写IP,可是SSL我的认知是,必须要有域名才能进行443请求吧? 如果是直接用NODE运行的话,-e https://<转发的音源> 这个功能的作用是什么? 那我自签的证书还需要吗?同时 这个<转发的音源>到底应该是填写 我自己申请的域名还是https://music.163.com
目前站点还没有备案,域名和服务器都是腾讯云的,现在正在被腾讯云阻断了,但域名能够正确解析到公网IP 我试着手动进入脚本安装的目录 /var/www/UnblockNeteaseMusic/ 然后手动启动 node app.js -s -e https://<转发音源的域名> -p 80 这样的话可以播放音乐,但部分音乐仍然不能播放,尤其是解析到非QQ的音源 (Log依然是 不带SSL或者443字样的)
域名被阻断了就没法转发了,这种方式你可以放弃了 也就是说QQ的音源可以播放?应该不能吧,你域名都连不通
那如果我申请了备案后 是不是就可以生效音源转发了? 我现在的主要是,443的请求没法转发到80上。
但一旦再运行NGINX就会杀掉NODE
但确实是杀掉了,在SSH上面看得到。当然了Nginx是通过宝塔面板启动的。
原来是这样,那证书的话我要怎么指定?我已经覆盖了文件夹里面的key和crt证书。 这样还需要进行指定吗?
不知道你说的指定证书是什么意思,是指定 endpoint 的意思吗?
其实我没理解的是,我现在用的是Host文件直接解析到我的服务器上,Host只能填写IP,可是SSL我的认知是,必须要有域名才能进行443请求吧?
是的必须有域名才能进行443请求,但是你改了 hosts,域名就是 music.163.com 啊 (效果就相当于你拥有 music.163.com 域名,并把 music.163.com 解析到你的服务器 IP,客户端直接请求你的服务器)
如果是直接用NODE运行的话,-e https://<转发的音源> 这个功能的作用是什么?
endpoint 的作用是转发音源地址,只负责歌曲链接转发,可以去看 #143
那我自签的证书还需要吗?
你能保证 -e
的地址是公网可访问的可信任的 https 站点且有 /package
功能,就不需要自签证书,二选一。但是你现在域名没备案公网访问不了
那如果我申请了备案后 是不是就可以生效音源转发了? 我现在的主要是,443的请求没法转发到80上。
是的。
你说的转发是反向代理的意思?为什么说 443 请求没法转发到 80 上?你不是已经配置了 proxy_pass
的反向代理吗?肯定可以转发啊!
你又改不了客户端的代码,客户端发起请求的地址还是 music.163.com,又不会请求你的域名
-p 80:443 -e https://music.163.com
这样 unblockneteasemusic 会自动开启 http 和 https 端口,https 的端口用的证书是我或者你自己签的 music.163.com 的假证书,所以要在系统安装 CA 来手动信任这张假证书。客户端的请求因为你改了 hosts 的原因会来请求 unblockneteasemusic 的 80 和 443 端口,填充的播放地址是用 music.163.com 构造的假地址。因为改了 hosts,这个播放地址也会解析到 unblockneteasemusic 并请求 443 端口,然后按内部逻辑处理后返回,这种情况下跟你自己的域名没有半毛钱关系
如果用 -e 你自己的域名
,填充的播放地址会以你自己的域名开头,然后客户端会按正常的 dns 解析访问你这个域名的 server,所以要保证你的域名公网可以访问,并且证书是系统默认信任的证书。教程里说要配置 nginx 反向代理到 unblockneteasemusic 端口上是因为要用到 unblockneteasemusic 的内部逻辑。当然你可以自己实现那个逻辑,另外开一个 server,不使用 unblockneteasemusic 端口
@nondanee 现在的情况是,PC上的客户端可以通过代理的方式,成功播放部分歌曲,但iOS上通过Host模式无法播放的音乐,在PC上也不行,只有在iOS上使用小火箭播放才能成功,具体音乐有 周杰伦的 “不爱我拉倒”。 此时的Log输出是 Tunnel:部分126.net的域名,部分我自己的域名:443 而不是SSL
再谈谈我的服务器(腾讯云)目前的情况,如上所述,暂无备案。有域名和自签证书。 ping 我的域名 是能够正确解析到我的服务器的公网IP,通过公网ip直接访问服务器的80端口和443端口也是可以的。 一旦通过浏览器访问我的域名,直接强制跳转到dnspod(域名注册商)的要求备案页中。 这样情况下,是我的配置出了问题,还是确实是需要备案?
用最新的 Windows 客户端 hosts 失效的话可以用之前的版本 https://github.com/nondanee/UnblockNeteaseMusic/issues/48#issuecomment-554661621 (我测了下,第一次打开没有效果,用过一次代理以后再改 hosts 会生效)
iOS 怎么改 hosts?越狱了改? iOS 上系统代理不可用吗,只能用小火箭?
无法 mitm 的流量会走 tunnel,不显示 ssl 你说的自签证书应该是 let's encrypt 这类免费的 ssl 证书吧,那是受信任的 CA 签的,不是 "自签" 的
确实需要备案 说过了啊不用域名也可以,不用执着域名的问题
用最新的 Windows 客户端 hosts 失效的话可以用之前的版本 #48 (comment) (我测了下,第一次打开没有效果,用过一次代理以后再改 hosts 会生效)
目前我的最新网易客户端仍然可使用内置的代理形式播放,但部分音乐不起效果。
iOS 怎么改 hosts?越狱了改?
对,就是通过越狱后修改Hosts。
iOS 上系统代理不可用吗,只能用小火箭?
系统的代理,因为考虑到4G和WIFI都能够生效,加上我自己购买了小火箭,就没有考虑到用系统的代理。
无法 mitm 的流量会走 tunnel,不显示 ssl 你说的自签证书应该是 let's encrypt 这类免费的 ssl 证书吧,那是受信任的 CA 签的,不是 "自签" 的
@a95788 那应该是没匹配到
越狱后改 hosts 我没测过
那就用小火箭好了
客户端如果直接访问网易服务器 ip 的话你改 hosts 不会生效的
我是纯小白一名,之前成功弄过v2ray部署 这次用的脚本是https://github.com/XIU2/SHELL/blob/master/docs/unblock163.md 端口设置如下:
昨天提问的issues #318 中提到,后来想通过Host的方式解决问题。 目前证书(自签)、域名已有,也在Nginx中配置了文件。 目前只有PC端生效(就算不申请SSL也能够直接生效)
但似乎不起效果。
目前从日志来看能够匹配到音乐,但在IOS端就是不能播放,提示“网络不给力,无法继续播放” 我猜测应该是没有443转发到80端口。 播放器效果
我阅读了closed的issues和Readme文档,实在是不知道如何使用80端口。 不知道作者能不能将命令完整的说明一下。