brook

txthinkingGPL-3.0活跃维护

跨平台可编程网络工具,支持代理转发、流量加密与 MITM 分析,可用于搭建 VPN 客户端和网络监控。

A cross-platform programmable network tool

v20270101发布于 2026-09-14 04:56 UTC15,193star +1 / 7 天2,361fork同步于 2026-11-10 05:26 UTC

怎么上手

README 里没有找到可直接复制的安装命令

README 里没有找到可直接复制的安装命令,请到 README 或官方文档查看安装方式。

硬件要求

README 没有说明硬件要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本v20270101
  1. v20270101最新正式版2026-09-14 · 2026-09-14 04:56 UTC

    Changelog

    Read on blog

    Docs

    https://www.txthinking.com/brook.html

    Brook Script Gallery

    https://brook.app

    OpenWrt

    brook.openwrt_linux_arm64 and brook.openwrt_linux_amd64

    https://www.txthinking.com/talks/articles/brook-openwrt-one-en.article

    ipio

    The CLI version of Brook GUI

    https://github.com/txthinking/ipio

    brook_store

    An implementation of Brook User System

    https://github.com/TxThinkingInc/brook_store

    Brook Business

    Brook Business: Powering Your Own Branded Client

    You can download a precompiled version with more features or build the OSS version from source.

  2. v20260101.0v202601012025-12-31 · 2025-12-31 08:04 UTC
    查看更新说明

    Changelog

    Read on blog

    Docs

    https://www.txthinking.com/brook.html

    Brook Script Gallery

    https://brook.app

    OpenWrt

    brook.openwrt_linux_arm64 and brook.openwrt_linux_amd64

    https://www.txthinking.com/talks/articles/brook-openwrt-one-en.article

    ipio

    The CLI version of Brook GUI

    https://github.com/txthinking/ipio

    brook-store

    An implementation of Brook User System

    https://github.com/TxThinkingInc/brook-store

    Brook Business

    Brook Business: Powering Your Own Branded Client

  3. v202508082025-08-01 · 2025-08-01 03:42 UTC
    查看更新说明
  4. v202502022025-01-23 · 2025-01-23 03:46 UTC
    查看更新说明

    CLI

    brook dnsserver, dohserver, dnsserveroverbrook, server, wsserver, wssserver, quicserver can use script to do more complex thing, such as speed limit for a connection or forward to another brook link and more. brook will pass different global variables to the script at different times, and the script only needs to assign the processing result to the global variable out. Read more: https://brook.app

    • --userAPI="": Works with server, wsserver, wssserver, quicserver. When you build your own user system, Brook Server will send GET request to your userAPI to check if token is valid, for example: https://your-api-server.com/a_unpredictable_path. Yes, it is recommended to add an unpredictable path to your https API, of course, you can also use the http api for internal network communication. The request format is https://your-api-server.com/a_unpredictable_path?token=xxx. When the response is 200, the body should be the user's unique identifier, such as user ID; all other status codes are considered to represent an illegitimate user, and in these cases, the body should be a string describing the error. For more information, please read https://github.com/txthinking/brook/blob/master/protocol/user.md
    • --userAPIRateLimit="": Works with --userAPI. Limit the request rate per token to the user API by Brook Server, this will reduce the load on the user API. This is especially important when users have expired, and the userAPIValidCacheTime will not cache the requests, resulting in continuous requests to the user API. The default is 0, which means no limitation. For example, setting it to 1 means the rate is limited to 1 request per token per second. The phrase 'per token' means that each token has its own rate limiter, and they do not interfere with each other (default: 1)
    • --userAPIValidCacheTime="": Works with --userAPI. Once a token is checked and valid, the userAPI will not be requested to validate again for a certain period (s). A reasonable value must be set, otherwise it will affect the performance of each incoming connection (default: 3600)
    • --userLog="": Works with --userAPI. Log, traffic and more. A valid value is file path. Send SIGUSR1 to me to reset the log file on unix system. Mutually exclusive with the --log parameter.
    • --pid="": A file path used to store pid. Send SIGUSR1 to me to reset the --log or --userLog file on unix system
    • --cliToken="": The CLI Token of your Brook Plus or Brook Business account, get it from https://www.txthinking.com/brook.html
    • --script="": Works with server, wsserver, wssserver, quicserver, dnsserver, dohserver, dnsserveroverbrook. https://, http:// or /path/to/file.tengo. Get details at https://brook.app/
    • --scriptUpdateInterval="": Works with --script. The interval (s) to re-fetch script. The default is 0, which means only fetch once on startup (default: 0)
    • All support brook link with token
    • Deprecated some parameters

    OpenWrt

    Brook for OpenWrt uses the same script as the GUI. Since OpenWrt will abandon ipk and CLI can edit complex rules more conveniently, I have returned openwrt to CLI. brook for OpenWrt is tested on OpenWrt systems, but may work on other Linux systems, but it is not guaranteed.

    • There are two new files: openwrt_linux_amd64 and openwrt_linux_arm64
    • Support brook link with token
    • Support script same with Brook GUI client

    ipio

    https://github.com/txthinking/ipio

    brook-store

    https://github.com/TxThinkingInc/brook-store

    GUI

    • Add Clear and import, more convenient when importing links
    • The system time will be checked when connecting to prevent unnoticed abnormalities caused by system time errors
    • iOS and macOS: add All Networks & Excludes mode: Include All Networks. But exclude some networks, such as: Apple Push Notification services (APNs) traffic; Wi-Fi Calling, MMS, SMS, and Visual Voicemail; Local network, AirPlay, AirDrop, and CarPlay; XCode Device Communication. And the VPN will not be disconnecte
  5. v202402142024-01-14 · 2024-01-14 10:24 UTC
    查看更新说明

    GUI:

    • Removed proxy mode. All in TUN mode. Life is short, I use Brook
    • Modularized all features
    • Rewrote UI
    • iOS: Memory optimization
    • Linux/Windows: Disconnecting will automatically restore the system DNS to its original state. Other platforms do not have this concern.
    • Linux/Windows: You can now identify which programs are initiating TCP and UDP network connections. This also means that you can use scripts to control network access for specific applications. This feature has been completed in the previous macOS version. There is no such API for iOS. Android can bypass the app.
    • Windows: Package using the new msix format. Here and Here
    • Windows: Developed and tested under Windows 11
    • Linux: Optimized startup way
    • Added Test IPv4 tool
    • Added Test IPv6 tool
    • ipk: Removed. Might write a new UI
    • If you signin: Connect API over your Brook only Mode. You must ensure your Brook Server works.
    • Updated documentation: https://brook.app

    GUI:

    • 移除 proxy 模式。全端默认 TUN 模式。人生苦短,我用 Brook
    • 将所有功能模块化
    • 重写 UI
    • iOS: 内存优化
    • Linux/Windows: 断开自动将系统 DNS 恢复如初。其他端无此顾虑
    • Linux/Windows: 可以知道是哪个程序在发起 TCP 和 UDP 网络连接。也意味着可以用脚本来针对具体应用程序来进行网络控制。macOS 端上一个版本已完成。iOS 端无此 API。Android 端可以 bypass app
    • Windows: 使用新的 msix 格式打包。这里 和 这里
    • Windows: 在 Windows 11 下开发测试
    • Linux: 优化启动方式
    • 新增 Test IPv4 工具
    • 新增 Test IPv6 工具
    • ipk: 移除. 可能,后续会写一个新的 UI
    • If you signin: Connect API over your Brook only Mode. You must ensure your Brook Server works
    • 文档更新: https://brook.app

    CLI

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Brook

    A cross-platform programmable network tool.

    Sponsor: Shiliew - Focuses on providing stable network services

    Server

    bash <(curl https://bash.ooo/nami.sh)
    
    nami install brook
    
    brook server -l :9999 -p hello
    

    Client

    You may want to use brook link to customize some parameters

    Docs

    https://www.txthinking.com/brook.html

    Brook Script Gallery

    https://brook.app