V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
unco020511
V2EX  ›  程序员

为什么 clash 这类代理客户端不预置一种「出错自动使用代理重试」的模式

  •  
  •   unco020511 · 2023-02-15 17:40:31 +08:00 · 3554 次点击
    这是一个创建于 675 天前的主题,其中的信息可能已经有所发展或是发生改变。

    clash 或者浏览器插件(SwitchyOmega)之类代理工具为什么不提供这种模式 /策略呢 比如先按照 pac 或者设定好的域名走代理,走直连的如果请求出错(过滤指定错误),就尝试使用代理重试,这样访问一个墙外新网站对于用户来说体验会比较好,同时询问用户是否将该域名加入规则

    20 条回复    2023-02-16 17:09:37 +08:00
    ianEros
        1
    ianEros  
       2023-02-15 17:49:36 +08:00
    你说的是漏网之鱼吧
    Mohanson
        2
    Mohanson  
       2023-02-15 17:49:58 +08:00
    现在很多网站大陆是可以直连建立 TCP 链接的, 但是人家网站检测到是大陆 IP 会立即关掉 TCP 链接. 在客户端看来这条 TCP 路线就是正常建立并正常被服务器关闭的.
    unco020511
        3
    unco020511  
    OP
       2023-02-15 17:53:18 +08:00
    @Mohanson 这种确实有,但大多数应该还是因为墙的问题吧,直接在出口连接的就失败了,这类如果自动使用代理重试,用户无感,感觉体验还蛮好的
    unco020511
        4
    unco020511  
    OP
       2023-02-15 17:54:28 +08:00
    @ianEros 对,一些常规 pac 规则的漏网之鱼
    millson
        5
    millson  
       2023-02-15 17:58:04 +08:00   ❤️ 1
    v2yllhwa
        6
    v2yllhwa  
       2023-02-15 18:00:48 +08:00 via Android
    @unco020511 他说的漏网之鱼的意思是 clash 配置可以在最后写 match 走 proxy or direct 之类的,日常把这些没走 pac 的全部走 proxy 就行了
    Bingchunmoli
        7
    Bingchunmoli  
       2023-02-15 18:02:28 +08:00 via Android
    流量够就把 other 交给 proxy ,流量不够就直连就这么简单
    unco020511
        8
    unco020511  
    OP
       2023-02-15 18:05:20 +08:00
    @millson #5 厉害,star 了.这个 repo 特别符合我的需求,技术细节也很接近,错误分析记录次数,自动重试更新 pac.这类策略要是能集成到代理客户端工具上就完美了
    pagxir
        9
    pagxir  
       2023-02-15 18:20:06 +08:00 via Android
    那也不见得多大的体验提升,毕竟不是网站虽然能直连,但是速度拉胯,并且判断也费时间,还不如一股脑国内走直连,海外走转发。
    qiuzhifei
        10
    qiuzhifei  
       2023-02-15 18:58:22 +08:00
    crysislinux
        12
    crysislinux  
       2023-02-15 19:19:37 +08:00 via Android
    确实不如一股脑国内走直连,海外走转发
    paradoxs
        13
    paradoxs  
       2023-02-15 19:25:13 +08:00
    你说的“出错自动使用代理重试” ,实际上早就已经支持了。不过需要你自己写规则而已。

    2 行代码即可实现:
    第一行是:geo ip cn ,direct
    第二行是:final proxy
    nkcfc
        14
    nkcfc  
       2023-02-16 00:30:40 +08:00 via Android
    @paradoxs 楼主不是这个意思,这一点不自动。
    adrianzhang
        15
    adrianzhang  
       2023-02-16 04:41:46 +08:00 via iPhone
    @millson 代码库是 7 到 9 年前,go 语言。你是 go 大佬啊!这么早用 go 开发。
    agagega
        16
    agagega  
       2023-02-16 08:09:25 +08:00 via iPhone
    我有点怀疑,如果有人发现你试图访问大量被屏蔽的域名,会不会直接给你标记成风险人员😂
    SenLief
        17
    SenLief  
       2023-02-16 08:23:22 +08:00 via iPhone
    Clash meta 支持的,5s 内 5 次 tcp 握手失败,就会主动触发健康检测了。
    piku
        18
    piku  
       2023-02-16 08:40:30 +08:00 via Android
    看起来是个好主意,为什么不去 clash 项目中提 issue 呢?
    我觉得数据不经过 clash 时,它是不管这个连接状态的(单纯转发),不知道究竟是通了还是墙了。由于墙方法的多样性,也很难准确检测出中间发生了什么问题。
    slime7
        19
    slime7  
       2023-02-16 10:02:58 +08:00
    如果是表单提交,服务器收到了,但是返回没拿到,这时候用代理重发一次就重复提交了
    smartruid
        20
    smartruid  
       2023-02-16 17:09:37 +08:00
    @SenLief #17
    @qiuzhifei #10 试了一下这个 feature ,体验挺不错的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2337 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:01 · PVG 00:01 · LAX 08:01 · JFK 11:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.