最完整Brook使用指南:从安装到高级配置一步到位
Brook是一款跨平台可编程网络工具(A cross-platform programmable network tool),支持在Windows、macOS、Linux、iOS、Android等多种操作系统上使用。本文将从安装到高级配置,为你提供一站式的Brook使用指南,帮助你快速掌握这款强大工具的核心功能。
一、Brook简介
Brook的核心功能是提供灵活的网络代理和转发能力,同时支持通过脚本进行可编程配置。其主要特性包括:
- 跨平台支持,覆盖主流操作系统
- 多种代理协议支持,如HTTP、HTTPS、SOCKS5等
- 可编程网络规则,通过脚本自定义网络行为
- 丰富的插件系统,可扩展功能
官方文档:README.md
二、安装Brook
2.1 服务器端安装
在服务器上安装Brook非常简单,只需执行以下命令:
bash <(curl https://bash.ooo/nami.sh)
nami install brook
安装完成后,你可以通过以下命令启动Brook服务器:
brook server -l :9999 -p hello
其中,-l参数指定服务器监听地址和端口,-p参数设置连接密码。
2.2 客户端安装
Brook提供了多种客户端版本,适用于不同操作系统:
- iOS:App Store下载
- Android:APK下载
- macOS:App Store下载,关于macOS应用模式的更多信息:About App Mode on macOS
- Windows:MSIX下载,安装教程:How to install Brook on Windows
- Linux:二进制文件下载,安装教程:How to install Brook on Linux
- OpenWrt:安装教程:How to install Brook on OpenWrt
三、基本使用
3.1 启动服务器
安装完成后,使用以下命令启动Brook服务器:
brook server -l :9999 -p your_password
其中,:9999是服务器监听的端口,your_password是你设置的密码。
3.2 客户端连接
在客户端,你可以使用以下命令连接到Brook服务器:
brook client -s server_ip:9999 -p your_password -l 127.0.0.1:1080
其中,server_ip:9999是服务器地址和端口,your_password是服务器密码,127.0.0.1:1080是本地代理端口。
连接成功后,你可以将浏览器或其他应用的代理设置为127.0.0.1:1080,即可通过Brook进行网络访问。
四、高级配置
4.1 自定义代理规则
Brook支持通过脚本自定义代理规则,你可以在programmable目录下找到相关示例和文档。例如,你可以创建一个Tengo脚本,实现基于域名的分流:
// 示例脚本:block_ad_domain.tengo
if query.Domain == "ad.example.com" {
return {Action: "block"}
}
return {Action: "resolve"}
更多脚本示例:programmable/modules/
4.2 使用插件扩展功能
Brook提供了丰富的插件系统,你可以在plugins目录下找到各种插件。插件的使用非常简单,只需覆盖公开的函数变量即可。
例如,plugins/block/插件可以帮助你阻止特定的网络请求,plugins/logger/插件可以记录网络日志。
插件开发文档:plugins/readme.md
4.3 DNS配置
Brook内置了DNS服务器功能,你可以通过以下命令启动DNS服务器:
brook dnsserver -l :53 -s 8.8.8.8
其中,:53是DNS服务器监听端口,8.8.8.8是上游DNS服务器地址。
你还可以通过脚本自定义DNS解析规则,例如programmable/dnsserver/example.tengo。
五、Brook Script Gallery
Brook提供了一个脚本 gallery,你可以在其中找到各种实用的脚本。要提交自己的脚本到 gallery,只需向programmable/gallery.json添加一个对象即可。
脚本 gallery 中的每个条目包含以下信息:
| Key | Type | Description |
|---|---|---|
| name | string | 脚本或模块名称 |
| url | string | 脚本或模块的URL |
| kind | string | 类型,可选值:dnsserver/server/module/client |
| ca | bool | 是否需要安装CA |
| author | string | 作者名称 |
| author_url | string | 作者URL |
脚本提交指南:programmable/readme.md
六、常见问题
6.1 如何解决连接问题?
如果无法连接到Brook服务器,请检查以下几点:
- 服务器是否正常运行
- 服务器端口是否开放
- 密码是否正确
- 客户端代理设置是否正确
6.2 如何更新Brook?
使用以下命令更新Brook:
nami update brook
6.3 如何卸载Brook?
使用以下命令卸载Brook:
nami uninstall brook
七、总结
通过本文的介绍,你应该已经掌握了Brook的基本安装、使用和高级配置方法。Brook作为一款强大的跨平台可编程网络工具,为你提供了灵活的网络代理和自定义能力。无论是日常网络访问还是复杂的网络配置,Brook都能满足你的需求。
如果你有任何问题或建议,欢迎访问Brook的GitHub仓库参与讨论。同时,也欢迎你贡献自己的脚本和插件,丰富Brook的生态系统。
最后,如果你觉得本文对你有帮助,别忘了点赞、收藏、关注三连,以便获取更多关于Brook的使用技巧和教程!
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0183- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
snackjson新一代高性能 Jsonpath 框架。同时兼容 `jayway.jsonpath` 和 IETF JSONPath (RFC 9535) 标准规范(支持开放式定制)。Java00