openwrt-passwall
openwrt-passwall copied to clipboard
[Feature Request]: 开启socks切换后资源占用过高
描述你想要的新功能
可能是最近开会的问题,一到晚上节点老挂,socks切换就会一直换节点测延迟,openwrt的内存和cpu占用很高,甚至会直接卡死,请问有没有办法解决
描述你想要的解决方案
降低占用
描述你考虑过的替代方案
No response
其他信息
No response
用xray负载均衡节点,把你希望用到的节点添加进去,策略选leastPing,测试间隔根据你节点情况自己尝试多少合适。在这种特殊时期很适合,无缝切换,无需改配置重启进程,包括测试节点什么的都在一个进程里完成,无需其他额外的守护进程,资源占用自然也高不到哪去。反正我的路由之前试过haproxy均衡,CPU占满,还速度慢,路由带不起,只能用Xray负载均衡策略。 sing-box有类似于leastPing策略的配置,叫URLTest的outbound协议,目前我还在适配,暂时用不了,也不知道会不会比leastPing更好用。
用xray负载均衡节点,把你希望用到的节点添加进去,策略选leastPing,测试间隔根据你节点情况自己尝试多少合适。在这种特殊时期很适合,无缝切换,无需改配置重启进程,包括测试节点什么的都在一个进程里完成,无需其他额外的守护进程,资源占用自然也高不到哪去。反正我的路由之前试过haproxy均衡,CPU占满,还速度慢,路由带不起,只能用Xray负载均衡策略。 sing-box有类似于leastPing策略的配置,叫URLTest的outbound协议,目前我还在适配,暂时用不了,也不知道会不会比leastPing更好用。
不使用socks切换,转用负载均衡?你说的那个策略选leastping我没有找到在哪啊请问。
节点列表,添加节点,类型 Xray,协议 负载均衡
用xray负载均衡节点,把你希望用到的节点添加进去,策略选leastPing,测试间隔根据你节点情况自己尝试多少合适。在这种特殊时期很适合,无缝切换,无需改配置重启进程,包括测试节点什么的都在一个进程里完成,无需其他额外的守护进程,资源占用自然也高不到哪去。反正我的路由之前试过haproxy均衡,CPU占满,还速度慢,路由带不起,只能用Xray负载均衡策略。 sing-box有类似于leastPing策略的配置,叫URLTest的outbound协议,目前我还在适配,暂时用不了,也不知道会不会比leastPing更好用。
期待,目前sing-box就缺类似于leastPing的策略,就算用xray负载均衡开sing-box节点,也会开很多进程,我主要是缺内存。。。
期待,目前sing-box就缺类似于leastPing的策略,就算用xray负载均衡开sing-box节点,也会开很多进程,我主要是缺内存。。。
节点是只有 sing-box支持的那几个协议吗?
期待,目前sing-box就缺类似于leastPing的策略,就算用xray负载均衡开sing-box节点,也会开很多进程,我主要是缺内存。。。
节点是只有 sing-box支持的那几个协议吗?
类似这种,用xray负载均衡开sing-box节点,就会一个节点开一个进程。
vless的话,你改成xray类型的不就行了?如果是什么tuic,hysteria之类的xray不支持的那没办法。
节点列表,添加节点,类型 Xray,协议 负载均衡
![]()
请问Xray的负载均衡支持Socks切换那样的恢复切换吗?主要是可以实现低倍率节点挂掉后自动切到普通节点,恢复时再切回低倍率节点。
请问Xray的负载均衡支持Socks切换那样的恢复切换吗?主要是可以实现低倍率节点挂掉后自动切到普通节点,恢复时再切回低倍率节点。
理论上是可以的,Xray v1.8.8版新添加的leastLoad
策略,引入了一个fallback
参数,当负载均衡的所有节点都不能用时,会回落到fallback节点。等于是实现了通常负载均衡里的主备切换,把低倍率节点设为负载均衡节点,高倍率稳定的节点设为fallback后备节点。
我去年就是想要这么一个主备切换的功能,跟你需求差不多,奈何没法实现,HaProxy 之前也说了跑不起来,就用单纯的leastPing
顶着,因为绝大部分时候,添加的那8-10个节点里面,总有至少2-3个是处于可用状态,几乎不会出现全挂的情况,而且担心全挂的时候,可以额外添加几个延迟比其他低倍率节点高,但稳定基本不掉线的节点。因为延迟稍高,正常情况下不会选中,只有其他节点挂掉或者高峰期延迟飙升的情况,才会走额外的节点,也算是变相主备切换了。
而且我那时候直接做的分流,2.5倍率专线只走Google搜索,默认用1.0/1.1倍率,有些其他常用的网站用0.8/0.9倍率节点组leastPing均衡,然后大流量下载的,比如 GitHub、YouTube、Google Play 就是超多流量又便宜的其他机场节点组 leastPing均衡。
不过leastLoad
目前passwall还没适配,leastPing
的话,Xray v1.8.8版还未添加fallback支持。不过我刚刚去Xray那边搜了一下,应该是提交leastLoad
的开发者以为已经支持了,但其实漏掉了leastPing
和roundRobin
。刚刚给那位开发者说了,~~估计到1.8.9 leastPing
应该就能支持fallback了。~~
暂时的话,你可以多添加几个低倍率节点,对资源占用没什么影响,但是可以降低全部节点一起挂掉的概率。
~~应该不用等太长时间,刚刚Xray那边issue,RPRX说加了就发 1.8.9,估计就今明。~~ 看来得优先适配这个功能了。 1.8.9 已发布,但是那两个策略的fallback支持并没有修复,看下个版本怎么样了。
对于这个issue本来提出的问题,因为同时开多个进程引起的资源占用过高的问题,很久以前就想过,或许可以用配置文件目录来解决,每个配置文件放目录,只需要一个进程加载整个配置目录就行,不过后来没有继续研究。
今天想着深入研究一下,首先是手动测试比较一下内存,2个配置分别运行,和合并在一起只运行一个进程内存的占用情况。 测试用的是Xray,配置文件是Socks 配置生成的,2个。 单独运行每个进程占用大概都是19MB左右(都是空载无连接)。把两个配置文件合并为一个运行,也就是多一个 socks-in 和 vmess-out,内存占用只多200-300KB左右。如果能够实现配置合并或者只用一个进程运行多个配置文件,在有些使用场景比如socks自动切换和使用socks中转的Haproxy负载均衡,尤其haproxy,是可以节省大量资源开销的。
那么现在问题就是,对于passwall这种情况,Xray 和 sing-box 目前的多文件配置/配置目录支持能否实现。 Xray 看官方文档,以及搜索得知,有很大限制,从 1.8.6 开始支持inbounds/outbounds的追加合并,这一点是必须的,经测试表现也很好,重复的tag会用新的替换旧的。但是路由规则截至目前,都是后加载的直接替换之前的,而不是合并 balancers 和 rules,这一条就导致行不通,除非打个小补丁。如果要Xray官方支持的话,估计不是短时间的事,只能想别的办法或者放弃。
再看sing-box,官方文档没有关于多文件配置的说明,但是有个 sing-box merge output.json -C xxxxx
的命令,于是用命令合并,查看合并后的结果。从结果来看算是可以,入站出站都合并了,但是重复出站"direct"和"block"并没有自动去重或者替换。路由规则也合并了,很好。直接运行sing-box run -C /path/to/conf/dir
,报错有tag重复。看来需要处理tag的问题。
Socks中转节点,应该只需要一个 socks-in(+可选的http-in),和一个对应的out,一条用路由规则对应起来就行了。“direct”和“block/blackhole”好像并没有作用?如果可以去掉的话,sing-box就可以很方便地改为使用配置目录。
只要把 ##app.sh## 里面运行sing-box的代码换成把配置文件放入 /tmp/etc/passwall/conf_singbox/ ,然后在 start 函数最后添加 判断,如果存在 /tmp/etc/passwall/conf_singbox/ 目录,就以 -C /tmp/etc/passwall/conf_singbox
参数运行singbox。
其他的,就只需要适当修改singbox配置文件生成代码,inbound标签添加区分,比如添加端口号,"socks-in-1081"。然后"final"去掉,改为路由规则。
而且貌似除了balancer,其他Xray支持的协议sing-box都支持,也就是说在socks配置和负载均衡生成socks节点时,只要是Xray类型的普通节点,都可以当成sing-box节点,直接生成sing-box配置文件。
@xiaorouji Socks中转生成的配置文件里面,direct
和block
/blackhole
出站没有什么作用吧?
对于这个issue本来提出的问题,因为同时开多个进程引起的资源占用过高的问题,很久以前就想过,或许可以用配置文件目录来解决,每个配置文件放目录,只需要一个进程加载整个配置目录就行,不过后来没有继续研究。
今天想着深入研究一下,首先是手动测试比较一下内存,2个配置分别运行,和合并在一起只运行一个进程内存的占用情况。 测试用的是Xray,配置文件是Socks 配置生成的,2个。 单独运行每个进程占用大概都是19MB左右(都是空载无连接)。把两个配置文件合并为一个运行,也就是多一个 socks-in 和 vmess-out,内存占用只多200-300KB左右。如果能够实现配置合并或者只用一个进程运行多个配置文件,在有些使用场景比如socks自动切换和使用socks中转的Haproxy负载均衡,尤其haproxy,是可以节省大量资源开销的。
那么现在问题就是,对于passwall这种情况,Xray 和 sing-box 目前的多文件配置/配置目录支持能否实现。 Xray 看官方文档,以及搜索得知,有很大限制,从 1.8.6 开始支持inbounds/outbounds的追加合并,这一点是必须的,经测试表现也很好,重复的tag会用新的替换旧的。但是路由规则截至目前,都是后加载的直接替换之前的,而不是合并 balancers 和 rules,这一条就导致行不通,除非打个小补丁。如果要Xray官方支持的话,估计不是短时间的事,只能想别的办法或者放弃。
再看sing-box,官方文档没有关于多文件配置的说明,但是有个
sing-box merge output.json -C xxxxx
的命令,于是用命令合并,查看合并后的结果。从结果来看算是可以,入站出站都合并了,但是重复出站"direct"和"block"并没有自动去重或者替换。路由规则也合并了,很好。直接运行sing-box run -C /path/to/conf/dir
,报错有tag重复。看来需要处理tag的问题。 Socks中转节点,应该只需要一个 socks-in(+可选的http-in),和一个对应的out,一条用路由规则对应起来就行了。“direct”和“block/blackhole”好像并没有作用?如果可以去掉的话,sing-box就可以很方便地改为使用配置目录。 只要把 ##app.sh## 里面运行sing-box的代码换成把配置文件放入 /tmp/etc/passwall/conf_singbox/ ,然后在 start 函数最后添加 判断,如果存在 /tmp/etc/passwall/conf_singbox/ 目录,就以-C /tmp/etc/passwall/conf_singbox
参数运行singbox。 其他的,就只需要适当修改singbox配置文件生成代码,inbound标签添加区分,比如添加端口号,"socks-in-1081"。然后"final"去掉,改为路由规则。 而且貌似除了balancer,其他Xray支持的协议sing-box都支持,也就是说在socks配置和负载均衡生成socks节点时,只要是Xray类型的普通节点,都可以当成sing-box节点,直接生成sing-box配置文件。
如果sing-box支持leastPing就好了。期待大佬的改进,小内存路由器现在跑passwall内存挺痛苦。
@xiaorouji Socks中转生成的配置文件里面,
direct
和block
/blackhole
出站没有什么作用吧?
暫時應該是沒有
用xray负载均衡开sing-box节点,首次开页面是否会变慢,我这样设置了过几分钟开网页会慢好几面
用xray负载均衡开sing-box节点,首次开页面是否会变慢,我这样设置了过几分钟开网页会慢好几面
sing-box节点协议是xray不支持的那几种吗?不然应该不需要用到这种配置。
没什么慢的,就是内存还是会大,但是改一个参数再保存就好了,不然一天下来9个G
用xray负载均衡开sing-box节点,首次开页面是否会变慢,我这样设置了过几分钟开网页会慢好几面
sing-box节点协议是xray不支持的那几种吗?不然应该不需要用到这种配置。
ss节点,但是用xray就显示不支持🥲
06: 丢弃节点: JP GMO, 原因:Xray不支持插件. 2024-03-15 18:31:06: 丢弃节点: US 美國, 原因:Xray不支持插件. 2024-03-15 18:31:06: 丢弃节点: US 美國 2, 原因:Xray不支持插件.
带插件的ss可以用shadowsocks-libev,我原来用的有个公益机场就是obfs的单端口ss,就是用的ss-libev。
这种情况,有几个sing-box类型节点就会开几个sing-box 进程,资源开销肯定大啊。
你试试ps | grep sing-box
,应该有多个。
如果没装shadowsocks-libev
和 obfs插件 的话,可以先在op官方的软件源搜一下有没有,没有的就到passwall release或者这个源下载。
带插件的ss可以用shadowsocks-libev,我原来用的有个公益机场就是obfs的单端口ss,就是用的ss-libev。 这种情况,有几个sing-box类型节点就会开几个sing-box 进程,资源开销肯定大啊。 你试试
ps | grep sing-box
,应该有多个。如果没装
shadowsocks-libev
和 obfs插件 的话,可以先在op官方的软件源搜一下有没有,没有的就到passwall release或者这个源下载。
我有装shadowsocks-libev和 obfs插件,但是passwall改版后,用shadowsocks-libev就爬墙不了,后来发现插件默认为无,需要每个节点更改ob插件选择V2ray-plugin才能正常爬墙,图省事才用的sing-box
我有装shadowsocks-libev和 obfs插件,但是passwall改版后,用shadowsocks-libev就爬墙不了,后来发现插件默认为无,需要每个节点更改ob插件选择V2ray-plugin才能正常爬墙,图省事才用的sing-box
这个可能是订阅链识别转换成passwall的参数时有问题。你可以改成使用ss-libev重新订阅一下,然后找一个,把插件手动选择,保存应用后,去看/etc/config/passwall
配置文件里面,看你修改的那个节点和其他ss节点option plugin
的值,应该是不同的。
没什么慢的,就是内存还是会大,但是改一个参数再保存就好了,不然一天下来9个G
请教下内存占用大,改啥参数?
随便一个,比如延迟时间,也是纳闷,就这样来一次内存不会发飙了
佔用高時,請查看一下是否有多個異常的進程。並且如果開了日誌的話,請查看是否因為日誌太大的原因。
请问Xray的负载均衡支持Socks切换那样的恢复切换吗?主要是可以实现低倍率节点挂掉后自动切到普通节点,恢复时再切回低倍率节点。
Xray v1.8.10 版增加了 leastPing
和roundRobin
策略的 fallback支持,虽然暂时还不支持fallback到另一个 balancerTag,但可以通过loopback来实现多级的fallback。比如可以设置多个leastPing
的均衡器,第一个放最低倍率的,比如 0.x-1.0的,fallback设置成第二个balancer,里面放倍率稍高一点,更稳定一点的,然后第二个的fallback设置成某个高倍率基本不太可能掉线的节点或者第三个balancer,里面放多个高倍率节点。
如果今天有空的话,会把这个适配。看情况,可能先适配fallback到单节点,再增加fallback到另一个balancer的支持。
为啥 sing-box 死活不愿意支持负载均衡。。
为啥 sing-box 死活不愿意支持负载均衡。。
那种平均分摊流量的负载均衡确实不会支持,之前又看到sing-box 一个issue有提,作者明确回复。不过跟leastPing
策略一样的有URLTest
类型的outbound,但是目前没有fallback/主备切换,看到之前有pr弄了clash的fallback,但是没合并,关了,不知道是存在什么问题。后来隔了几个月,同一个人又对URLTest
添加参数,想添加fallback支持,这一次是明确被作者否了,说应该弄一个单独的fallback类型(也就是跟Clash和第一次PR那样),而不是修改现有的东西。
至于开始那次为什么关闭,可能是引入了什么新的问题无法解决吧。
如果有人实现fallback类型outbound,不影响现有功能,不引入新问题,应该是会添加的。
对了,Xray负载均衡添加了fallback支持,而且可以设置另一个均衡器作为fallback,即可以实现任意多级的主备,虽然实际使用一般最多3级差不多了。最新代码还没合并,有合适的使用场景可以测试下(这段时间好像都还比较稳,前段时间真的是高倍率专线节点都有很大概率连不上)。