Brook 工作原理 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
thisismr2
V2EX    分享发现

Brook 工作原理

  •  4
     
  •   thisismr2
    PRO
    2021 年 12 月 28 日 5430 次点击
    这是一个创建于 1499 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://talks.txthinking.com/articles/brook.article

    • 概述
    • Brook CLI 就是一个文件
    • Brook 协议设计
    • CLI: brook server 和 brook client 工作原理
    • CLI: brook wsserver 和 brook wsclient 工作原理
    • CLI: brook wssserver 和 brook wssclient 工作原理
    • CLI: brook relay 工作原理
    • CLI: brook relayoverbrook 工作原理
    • CLI: brook dns 原理
    • CLI: brook tproxy 原理
    • CLI: brook socks5tohttp 原理
    • GUI: macOS 图形客户端 proxy 模式, Windows 图形客户端 proxy 模式
    • GUI: macOS 图形客户端 tun 模式, Windows 图形客户端 tun 模式, iOS 图形客户端, Android 图形客户端
    • 数据流向
    • Fake DNS
    • Block 屏蔽广告
    • Brook 图形客户端导入服务器列表

    https://talks.txthinking.com/articles/brook.article

    第 1 条附言    2021 年 12 月 28 日
    and 规则
    24 条回复    2022-01-07 15:59:52 +08:00
    zuosiruan
        1
    zuosiruan  
       2021 年 12 月 28 日
    大佬一个人全端都包了,点个赞先
    ToBeHacker
        2
    ToBeHacker  
       2021 年 12 月 28 日
    开源嘛
    thisismr2
        3
    thisismr2  
    OP
    PRO
       2021 年 12 月 28 日
    @zuosiruan :) 也不全是,有几个 GUI 端的部分功能有朋友工作之余在帮忙维护
    gesse
        4
    gesse  
       2021 年 12 月 28 日
    用了几次没有用了。
    66beta
        5
    66beta  
       2021 年 12 月 28 日
    配合 GCP 用过,后来没再用了
    thisismr2
        6
    thisismr2  
    OP
    PRO
       2021 年 12 月 28 日
    @66beta @gesse :) 有改善建议也可以不吝提提
    gesse
        7
    gesse  
       2021 年 12 月 28 日
    @thisismr2
    不支持 ipset
    thisismr2
        8
    thisismr2  
    OP
    PRO
       2021 年 12 月 28 日
    tproxy 吗,支持啊,可以禁用内置的 iptables 脚本 --doNotRunScripts ,完全自己写 iptables:
    https://github.com/txthinking/brook/issues/198#issuecomment-374090878
    thisismr2
        9
    thisismr2  
    OP
    PRO
       2021 年 12 月 28 日
    且据有限的测试,因为网上大部分都是在 nat 表,brook 在 mangle 表,可以不用 iptables 匹配那么长的规则,所以可以不用添加成千上万行的 iptables 记录,tproxy 直接在内存里处理规则更有效
    thisismr2
        10
    thisismr2  
    OP
    PRO
       2021 年 12 月 28 日
    #9
    因为原生支持 udp, 所以即使自己写 iptables mangle 表也更简单了
    https://github.com/txthinking/brook/blob/master/tproxy_linux.go#L181-L229
    thisismr2
        11
    thisismr2  
    OP
    PRO
       2021 年 12 月 28 日
    总结性解释是 因为 brook tproxy 原生支持 udp 和 tcp ,也支持 iptables mangle 表,就让使用者可以写更简单的 iptables 就可以了,也给了用户两种选择,
    可以用 iptables (自己也可选择 iptables 是否使用 ipset)
    也可以直接在 brook tproxy 层做
    cat9life
        12
    cat9life  
       2021 年 12 月 28 日
    Brook 用在番羽已经被针对了
    thisismr2
        13
    thisismr2  
    OP
    PRO
       2021 年 12 月 28 日
    @cat9life 结论有些不严谨, 可以看这篇协议比较
    shunia
        14
    shunia  
       2021 年 12 月 28 日
    刚试了一下,0 配置我个人觉得真的挺好的,但是还是觉得服务器端有配置文件更好一点,方便需要重启的情况。
    另外也希望客户端可以做到故障自动转移,因为日常使用过程中真的是经常遇到断线等情况,有时候甚至分不清是设备的网断了,还是服务不可达,就很难受。
    shunia
        15
    shunia  
       2021 年 12 月 28 日
    @shunia #14 再一个就是还是想要更有竞争力的客户端产品,目前的客户端似乎缺乏比较方便的自定义能力。我日常使用 cfw 都已经做到 mixin+parser 了,不用的时候觉得这些功能可能多余,需要用的时候还挺击中痛点的。
    thisismr2
        16
    thisismr2  
    OP
    PRO
       2021 年 12 月 28 日 via iPhone
    #14
    恩,目前重启可以搭配 joker ,不过还是输入了全命令,不过也可以写个 sh 脚本。
    故障转移是指 有多个节点 当前节点有故障了就尝试其他节点吗 有点类似复杂均衡
    thisismr2
        17
    thisismr2  
    OP
    PRO
       2021 年 12 月 28 日 via iPhone
    #15 大部分功能其实都差不多,只是名字说明不同
    正在考虑 parser 类的,修改包的功能,看看过年的空闲时间
    thisismr2
        18
    thisismr2  
    OP
    PRO
       2021 年 12 月 28 日 via iPhone
    大家可以提一些现在没有的功能 (包括其他软件付费才提供的功能)
    MeiJiayun
        19
    MeiJiayun  
       2021 年 12 月 28 日 via iPhone
    用了半年多,支持下
    w1287928345
        20
    w1287928345  
       2021 年 12 月 28 日 via iPhone
    Brook 和 WireGuard 很早就出来了,就是不知道为啥没能流行起来?
    X_Del
        21
    X_Del  
       2021 年 12 月 29 日
    @thisismr2 可以让 Clash 兼容 Brook 协议就好了,也可以利用上 Clash 丰富的规则 / 客户端生态(这个需求应该是 Clash 的),或者也可以反过来参考 Clash ,看看一个好的上网工具还需要什么功能。

    Brook 除了协议本身之外,比较出彩的点是可以单文件解决透明代理的问题。阻止 Brook 被商业机场广泛使用的主要原因其实就是缺乏配置文件 + 配置文件订阅,不好给末端用户分发。
    MeiJiayun
        22
    MeiJiayun  
       2022 年 1 月 6 日 via iPhone
    麻烦大佬帮适配 m1 苹果电脑,现在除了 brook ,其他自用 app 都兼容了 m1
    thisismr2
        23
    thisismr2  
    OP
    PRO
       2022 年 1 月 6 日 via iPhone
    @MeiJiayun 应该可以直接在 m1 上的 app store 里直接搜索安装吧
    MeiJiayun
        24
    MeiJiayun  
       2022 年 1 月 7 日
    @thisismr2 好的,谢谢提醒,已经通过使用 ios 版 app 来兼容 m1
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4375 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 03:46 PVG 11:46 LAX 19:46 JFK 22:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86