-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] 实现节点动态实时选择功能 #1433
Comments
欢迎 PR |
功能请求[1]. |
这个设想主要来源于浏览器上网、下载场景。
因此,或许我需要的是一个拥有此能力的浏览器插件,而不需要改变此软件。 忍受的超时时间:一般一个页面(或页面的子请求)5s 没反应我就会切换节点刷新了,我只需要将这个过程自动化而已。所以这个功能可以把场景限制的很死,不考虑更多泛化。 打开一个页面要等好几秒来等超时:只有第一次打开时会这样,后面会记忆策略不是每次都要测一遍。 几万几百万的量级也要这样测试:首先此规则只捕获普通个人用户日常使用场景时的网络请求(工业、工作场景不使用),每个请求的判断状态独立保存。就算长时间使用后积累了几百万总量级的不同记录,每一条的重试时间也是根据添加时间分散开来的,不会形成瞬时并发;也可以设置成时间+访问次数后重新后台异步测试,那些低概率打开的长尾记录不会频繁重测。 |
看起来你的需求可以通过一个优秀的规则+量大稳定的节点完成。 |
我有一个想法,这个或许可以通过dns手动实现一个简易版。 我准备先去试试 |
有gfw规则,里面全是无法直连的目标,让其走代理,其余走直连就节省流量了,对于漏掉的无法直连的自己添加下就行了,也没几个。使用下面类似规则即可,维护下自己的custom_proxy规则集。 - GEOSITE,gfw,proxy
- RULE-SET,custom_proxy,proxy
- MATCH,DIRECT 就我个人而言,我需要对哪个目标走哪个代理进行严格控制,有些目标服务虽然能直连,我也需要它走指定的代理。有些目标对不同地区提供了不同的服务,也需要控制其走特定地区的代理。 |
第一反应,自动选择。。。 看了下,理想了吧?自动检测,太依赖网络质量了,包括你本地网络,节点网络,等你检测一圈下来,加起来都几秒钟了。 |
应该是类似cow的功能,不过这个项目多年没有更新了 https://github.com/cyfdecyf/cow |
@ttttmr 看了下需求,这第一次连接得有多大的延迟啊? |
不是有个项目是CN-list么 ?这个项目里的所有域名都是大陆直连质量良好的,直接指定这些不就得了。 |
我来详细描述一下吧 不会劣化现有的代理体验这个功能可以理解是对于 所有能够走到这个策略的就是一个未知的域名 不会增加第一次连接的延迟使用这个策略的现状
实现自动选择功能后,大概的流程
此处只有2.1情况下的重试会增加延迟,即首次直连失败的场景,这点对比对于现有情况是直接失败,延迟不是问题 高质量域名列表无法解决问题现有的名单是有限的,添加和更新名单是无止尽的 小众域名永远都会面临这个问题:直连访问不了,域名不在名单里,需要手动加到规则里,然后再重试 具体要做什么实时评估当前连接质量,质量较低时自动尝试其他链路,并把成功的结果缓存下来 重点在于是实时评估决策,而不是用预定义的列表决策 这里面困难的是:如何评估当前连接质量 评估依据比如:超时,丢包率,速度... 符合一定的条件就可以判定为连接质量低,这些选项都可以作为配置项暴露出来 |
Verify steps
Description
摘要
请求实现实时检测的、动态的节点选择功能,替代现有根据规则、ip/domain 匹配的节点选择,以极大简化配置、节约流量。
背景
目前使用该软件:
可能需要学习复杂的 yaml 配置语法和逻辑:学习不同的 ip/domain/geo 信息源,学习不同节点的分组,学习多家供应商规则的外部倒入,才能写出相对良好的节点分配规则,做到自动只对必要的流量请求 vpn,达到节约流量的目的。
虽然有按天更新的 ip/domain/geo 信息源,但是本质依然是静态配置,实际使用中还是会经常遇到 “该直连的用节点”、“该走节点的用了直连” 的现象。
对于不同的网络资源需要使用不同节点的需求,规则都必须手动明确指定
用户使用软件的本质逻辑是:当无法使用直连访问时,才有必要使用节点进行访问 。为什么不把这个逻辑直接写到软件里呢?
功能请求
注意
该功能看起来类似 fallback, 但并不相同。本功能的请求更类似于针对每一个 IP/DOMAIN 的单独的 fallback,而不是仅仅测试节点的有效性。
Possible Solution
No response
The text was updated successfully, but these errors were encountered: