马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
今日无事,看到有人分享最新的sspanel-uim面板的搭建,因此自己想试试。
之前尝试搭建过,但节点的订阅下发一直有问题,具体如下:
下发的节点端口一直为用户管理中用户的连接端口
今天看搭建的视频发现其搭建的节点端口下发正确,于是又去尝试,但还是发现端口仍为用户端口,并不是自定义配置中的 node_port,因此发现只有ss节点是这样(我只用ss中转不用vmss等)。
搜索相关issue也发现有人提过类似的问题,但并未得到有效答案,回答好像是认为ss的单端口多用户影响性能,并不是ss协议的一部分。
寻找issue没能解决因此只能尝试自己摸索。
手动添加节点后我发现节点可以通,因此可以确定仅仅是订阅下发过程中下发的信息有误。
之前在一个群里看到过有人发过这么一段代码,貌似是解决这个问题:
SubController.php 99行和395行:- 'port' => (int) $node_custom_config['offset_port_user'] ?? $user->port,
复制代码
当时顺手转发了,但是今天再看已经没有了相关代码,所以我将 SubController.php 中的代码给了 GPT,他解释后发现了一个 Subscribe::getContent 方法,之后找到了 Subscribe 类,在这个类中找到了不同节点类型对应的php文件名,最后找到了ss的订阅内容下发代码。
在代码中发现节点的端口确实是下发的用户端口,好在开发者已经给出了解决代码,其他类型节点的端口下发都是对应的 node_port ,因此就参照其他类型节点的代码修改了下发的端口,终于解决了。
给出位置供有需要的朋友参考:- 在 SSPanel-Uim/src/Services/Subscribe 目录下
复制代码 ,
除 base.php Trojan.php V2ray.php之外的文件都需要修改
- foreach ($nodes_raw as $node_raw) {上边这行代码后添加下面这一行:$node_custom_config = json_decode($node_raw->custom_config, true);
复制代码- if ((int) $node_raw->sort === 0) {上边这一行后添加如下:$ss_port = $node_custom_config['offset_port_user'] ?? ($node_custom_config['offset_port_node'] ?? $user->port);
复制代码
这里是指按照 offset_port_user、offset_port_node、用户端口的顺序加载端口
然后将下一行 $links 开头的代码中 的 $user->port 改为 $ss_port
总结:v2board更简单,ChatGPT很厉害。
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 网站部分内容来源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|
|