node本地运行,Windows可用,iOS不可用,小火箭连接超时[已解决]
EricYoung37 opened this issue · 5 comments
Bug 描述
在Windows上以node运行服务,这一年都是这样听歌的,真的很感谢这个项目的所有贡献者。最近打算试试看能不能帮助iOS端解除限制,但是遇到困难。折腾了一晚,也翻了新旧项目的Issues都没找到类似的Shadowrocket超时情况,决定还是求助。
Windows端:
- 在Windows上安装了项目最新的证书(安装到了“受信任的根证书颁发机构证书存储”中,一年来是没安装的证书的,这次是为了iOS才安的)
- 项目根目录中运行
$node app.js -s -e https://music.163.com -p 8080:8081
- Windows上网易云设置了使用HTTP代理配置为
127.0.0.1:8080
,可正常使用
iOS端:
- 在iOS也安装了项目最新的证书,并信任了这个证书
- 使用Shadowrocket添加服务器,连接类型HTTP,填了我电脑的公网IP(通过
$curl ifcfg.me
得到,与在网上直接查自己IP地址一致),端口8080与-p 8080:8081
的第一个端口一致,保存好,测试连接Timeout,其实到这一步就可以确定iOS无法连接Windows运行的node服务,这个是我困扰的地方 - (当然我还是按照教程走完,接下来复制了小火箭的
default.conf
文件为default_copy.conf
,删去了含NetEase
,163
,126
字段的规则以防止与教程添加的3条规则冲突,设置使用default_copy.conf
) - 打开网易云,显示“加载歌曲列表失败”,不管哪个界面都空白,这个是意料之中的,毕竟小火箭那边显示连接超时
尝试:
iOS端小火箭服务器配置的端口改为80,可连上Windows,于是在Windows使用$node app.js -s -e https://music.163.com -p 80:443
。iOS的网易云仍然无法使用。
预期行为
我认为当我在Windows端项目根目录中运行$node app.js -s -e https://music.163.com -p 8080:8081
之后,iOS小火箭填写完协议HTTP,我Windows电脑的公网IP,端口8080,测试连接应该要ping通而不是显示超时。
实际行为
No response
复现步骤
No response
启动命令及环境变量
$node app.js -s -e https://music.163.com -p 8080:8081
日志内容
我想要日志内容,找遍了整个项目,只看到两处相关:
- 一处
./package.json
里面有"start:dev": "cross-env LOG_LEVEL=debug node src/app.js -e https://music.163.com"
,这里已经是debug
级的了,但运行时无日志产生 - 一处
./src/logger.js
,在里面有一句level: process.env.LOG_LEVEL ?? 'info'
,把info
改为debug
但是没有任何日志产生 - 尝试
$node app.js -s -e https://music.163.com -p 8080:8081 >> app.log
,无法启动服务,并得到输出是stdout is not a tty
网易云音乐歌曲链接
No response
网易云音乐版本号
Windows端2.9.5,iOS端为2.0.93,我认为不是网易云版本的问题,Shadowrocket都没办法连上服务
操作系统
iOS
其他信息
No response
问题排查
- 我确认我使用的核心是由 UnblockNeteaseMusic 项目官方发行,不是其他任何 fork。
- 我确认我已经升级到了最新的核心版本(推荐使用最新构建而不是 release)。
- 我确认我已经启用了 HTTPS 端口。
- 我确认我已经正确设置了 EndPoint。
- 我确认我已经在对应的客户端正确安装了 CA 证书。
检查过防火墙方面的问题吗?或者 iOS 能否直接访问 http://<your_ip>:8080/proxy.pac
无法访问的话主要还是在防火墙侧的问题(UNM 默认会监听 0.0.0.0)
如果 Windows 不是直接拨号,则需要考虑路由器/防火墙规则的问题
好的,谢谢提点,我去看看路由器防火墙设置。
无法访问的话主要还是在防火墙侧的问题(UNM 默认会监听 0.0.0.0) 如果 Windows 不是直接拨号,则需要考虑路由器/防火墙规则的问题
说对了!!
去路由器设置界面增加了目标设备(Windows)和8080端口转发的转发规则,小火箭ping通了!iOS可以连上Windows上运行的node服务,能看到终端上输出的日志!
现在歌曲都能点击了,但几乎所有歌曲在iOS“获取歌曲信息失败”,我去Issues看看相关贴子看有没有解决方案。