V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
thisismr2

Brook 工作原理

  •  4
     
  •   thisismr2 ·
    PRO
    · Dec 28, 2021 · 5636 views
    This topic created in 1592 days ago, the information mentioned may be changed or developed.

    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

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

    Brook 除了协议本身之外,比较出彩的点是可以单文件解决透明代理的问题。阻止 Brook 被商业机场广泛使用的主要原因其实就是缺乏配置文件 + 配置文件订阅,不好给末端用户分发。
    MeiJiayun
        22
    MeiJiayun  
       Jan 6, 2022 via iPhone
    麻烦大佬帮适配 m1 苹果电脑,现在除了 brook ,其他自用 app 都兼容了 m1
    thisismr2
        23
    thisismr2  
    OP
    PRO
       Jan 6, 2022 via iPhone
    @MeiJiayun 应该可以直接在 m1 上的 app store 里直接搜索安装吧
    MeiJiayun
        24
    MeiJiayun  
       Jan 7, 2022
    @thisismr2 好的,谢谢提醒,已经通过使用 ios 版 app 来兼容 m1
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   965 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 20:22 · PVG 04:22 · LAX 13:22 · JFK 16:22
    ♥ Do have faith in what you're doing.