Closed hulisang closed 3 years ago
怀疑可能是webapi请求的结果中data段出现了问题,我是按照手动测试获得的sspanel的返回格式构造的,默认使用了HTTPS协议(硬编码在nyalink-webapi.js
文件的第10行,可能有必要修改一下),因而在样例配置中仅保留了域名,不知道是否有可能是因为协议导致的问题。
开发时候使用的返回结果提供在下面了,如果并不是请求协议问题的话,能否麻烦您手动进行一次对于面板API的请求(//面板地址/mod_mu/users?node_id=*节点ID*&key=*MuKey*
),以便于发现可能存在的兼容性问题,非常感谢狐狸大佬的帮助!
{
"ret": 1,
"data": [{
"id": 1,
"email": "user@example.com",
"passwd": "******",
"uuid": "******",
"u": 0,
"d": 0,
"port": 1025,
"method": "rc4-md5",
"node_speedlimit": 0,
"node_connector": 0,
"protocol": "origin",
"protocol_param": null,
"obfs": "plain",
"obfs_param": null,
"forbidden_ip": null,
"forbidden_port": null,
"disconnect_ip": null,
"is_multi_user": 0,
"sha224uuid": "******"
}]
}
感谢大佬的思路,不知道是不是面板的bug,经排查节点类型为trojan时,设置节点流量上限为非0值,api返回就会返回空值,{"ret":1,"data":null}
可能确实是面板存在些许bug,可以尝试检查一下面板那边有没有相关的报错信息,或是新的修复相关呢。 有任何新发现的话,欢迎随时跟进哦。
然后又出现了。。。新的错误failed to connect to all addresses,没有找到events.js:292诶
root@debian:~/nyalink.js# node nyalink.js events.js:292 throw er; // Unhandled 'error' event ^
Error: 14 UNAVAILABLE: failed to connect to all addresses at Object.exports.createStatusError (/root/nyalink.js/node_modules/grpc/src/common.js:91:15) at ClientReadableStream._emitStatusIfDone (/root/nyalink.js/node_modules/grpc/src/client.js:233:26) at ClientReadableStream._receiveStatus (/root/nyalink.js/node_modules/grpc/src/client.js:211:8) at Object.onReceiveStatus (/root/nyalink.js/node_modules/grpc/src/client_interceptors.js:1277:15) at InterceptingListener._callNext (/root/nyalink.js/node_modules/grpc/src/client_interceptors.js:568:42) at InterceptingListener.onReceiveStatus (/root/nyalink.js/node_modules/grpc/src/client_interceptors.js:618:8) at /root/nyalink.js/node_modules/grpc/src/client_interceptors.js:1033:24 Emitted 'error' event on ClientReadableStream instance at: at ClientReadableStream._emitStatusIfDone (/root/nyalink.js/node_modules/grpc/src/client.js:234:12) at ClientReadableStream._receiveStatus (/root/nyalink.js/node_modules/grpc/src/client.js:211:8) [... lines matching original stack trace ...] at /root/nyalink.js/node_modules/grpc/src/client_interceptors.js:1033:24 { code: 14, metadata: Metadata { _internal_repr: {}, flags: 0 }, details: 'failed to connect to all addresses' }
event.js也许是grpc中提供的呢,这个大概是和trojan-go的gRPC连接建立不成功导致的…?因为我没有检测后端的连通性,所以大概连接失败的话也就会报错啦x 这边连接的后端是trojan-go哦,不是原始的trojan-gfw那个(那个似乎只能用MySQL数据库连接?trojan-go实现了gRPC协议的API(不过需要在配置中手动设置为开启),所以这边是使用这个API进行操作的。) 以及暂时比较偷懒,所以gRPC那边配置的是无加密的API连接模式,之后如果有加密相关的需求的话也许可以配置相关的加密方式呢。 这里附上一份我目前部署使用的trojan-go的配置文件,希望能有所帮助呢w
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 18771,
"remote_addr": "127.0.0.1",
"remote_port": 8080,
"password": [
"default_password"
],
"ssl": {
"cert": "/var/ssl/cert.crt",
"key": "/var/ssl/key.key",
"sni": "example.nyawork.com"
},
"router": {
"enabled": true,
"block": [
"geoip:private"
],
"geoip": "./geoip.dat",
"geosite": "./geosite.dat"
},
"api": {
"enabled": true,
"api_addr": "127.0.0.1",
"api_port": 10001,
"ssl": {
"enabled": false,
"key": "",
"cert": "",
"verify_client": false,
"client_cert": []
}
}
}
感谢提供配置文件,之前用的trojan的配置文件(只是加了api那一段)。今天重装系统之后用了您的配置文件一次点亮且正常运行,功能正常。ps:之前api返回空是因为设置的节点流量上限小于已用流量,清空数据后正常返回 再次感谢大佬的中间件,我会一直陪伴测试(^▽^)
好哒!也非常感谢大佬的帮助呢!辛苦啦~ (◍•ᴗ•◍)
环境debian10,node15
一步步按要求操作后报错
root@debian:~/nyalink.js# node nyalink.js file:///root/nyalink.js/nyalink.js:78 panelUsers.forEach((u, pos) => { ^
TypeError: Cannot read property 'forEach' of null at getUserId (file:///root/nyalink.js/nyalink.js:78:16) at file:///root/nyalink.js/nyalink.js:114:24 at Array.forEach ()
at backendUserListCallback (file:///root/nyalink.js/nyalink.js:113:21)
at ClientReadableStream. (file:///root/nyalink.js/nyalink-grpc.js:33:13)
at ClientReadableStream.emit (node:events:327:20)
at endReadableNT (node:internal/streams/readable:1289:12)
at processTicksAndRejections (node:internal/process/task_queues:80:21)