命令行三部曲(三)Brook 服务端部署和客户端使用

15 March, 2020

本教程的目的是 无需任何脚本 部署Brook服务端, 更新于 16 March 2020

cloud@txthinking.com
https://github.com/txthinking
https://www.txthinking.com

阅读本教程之前

请务必先阅读以下教程(很重要):

本教程假设

  • 您已经看过命令行三部曲的前两部
  • 你已经有一个云Linux服务器
  • 你已经登入云Linux服务器, 并切换到root用户

Brook是什么

  • Brook是一个开源的跨平台代理/VPN软件

  • 遵循KISS哲学, 目标是强加密, 无特征, 不可探测

  • 无需配置, 一条命令解决事情, 不将复杂暴露给用户, 让使用最简单化

  • 更多信息直接查看项目主页:

    https://github.com/txthinking/brook

本次分享的内容

服务端

  • [在云服务器] 如何下载brook命令文件
  • [在云服务器] 如何在前台启动brook server
  • [在云服务器] 如何在后台启动brook server

客户端

  • [在本地] 两种选择, 使用 [命令行客户端] 或 [图形客户端]
  • [在本地] [命令行客户端] 如何下载brook命令文件
  • [在本地] [命令行客户端] 如何使用命令行客户端, brook client
  • [在本地] [图形客户端] 如何下载图形客户端
  • [在本地] [图形客户端] 如何使用图形客户端

由于brook有很多功能, 本次只以brook server和brook client举例

[在云服务器] 如何下载brook命令文件

  1. Brook Github Releases页面找到并复制 对应自己系统架构 的命令文件链接

    一般云服务器都是Linux 64位系统, 目前对应的最新版本的命令链接就是
    https://github.com/txthinking/brook/releases/latest/download/brook_linux_amd64

  2. 登入你的云服务器命令行界面, 使用wget下载命令文件

    wget https://github.com/txthinking/brook/releases/latest/download/brook_linux_amd64
    
  3. 将brook_linux_amd64文件修改为可执行文件

    chmod +x ./brook_linux_amd64
    

[在云服务器] 如何在前台启动brook server

前台启动brook server

比如这里将端口设置为9999(如果有防火墙, 需要放开此端口的TCP和UDP), 密码设置成111111

./brook_linux_amd64 server -l :9999 -p 111111

因为是在前台运行, 所以:

  • 回车后brook server命令会 在前台 持续监听端口, 你 不可以 继续输入其他命令
  • 当断开ssh会话时, brook server 也会 停止

停止前台的brook server

按下组合键 Ctrl+C, 即可停止brook server

[在云服务器] 如何在后台启动brook server

建议先在前台启动brook server, 测试后没问题了再在后台启动brook server

后台启动brook server

这里用到了系统内置命令nohup, 只需要在原来的命令前面加上nohup, 后面加上&, 即可

nohup ./brook_linux_amd64 server -l :9999 -p 111111 &

因为是在后台运行, 所以:

  • 回车后brook server命令会 在后台 持续监听端口, 你 可以 继续输入其他命令
  • 当断开ssh会话时, brook server也 不会 停止
  • 当然你也可以在后台运行多个brook server, 分别使用不同的端口即可

接上

停止后台的brook server

这里我们用到了系统内置命令killall, 后面加后台运行的 命令文件名 即可

killall brook_linux_amd64

[在本地] [命令行客户端] 如何下载brook命令文件

  1. Brook Github Releases页面找到并复制 对应自己系统架构 的命令文件链接

    比如我的是macOS 64位系统, 目前对应的最新版本的命令链接就是(注: darwin是macOS系统内核的名称)
    https://github.com/txthinking/brook/releases/latest/download/brook_darwin_amd64

接上

  1. 进入你本地命令行界面, 使用wget下载命令文件

    wget https://github.com/txthinking/brook/releases/latest/download/brook_darwin_amd64
    

    如果你的macOS系统没有wget命令, 也可以用curl命令替代

    curl -o brook_darwin_amd64 https://github.com/txthinking/brook/releases/latest/download/brook_darwin_amd64
    

    也可以在浏览器下载, 然后在命令行界面用cd命令进入下载的文件所在目录

  2. 将brook_darwin_amd64文件修改为可执行文件

    chmod +x ./brook_darwin_amd64
    

[在本地] [命令行客户端] 如何使用命令行客户端, brook client

启动brook client

比如这里假设你的brook server服务器的IP是1.2.3.4, 端口是9999, 密码是111111

./brook_darwin_amd64 client -s 1.2.3.4:9999 -p 111111 --socks5 127.0.0.1:1080

启动后, brook client会创建一个socks5本地代理127.0.0.1:1080

  • 你可以手动修改系统代理或某个软件(比如telegram)使用此socks5代理
  • 也可以手动修改系统代理使用$ brook pac 创建PAC实现黑白名单自动分流
  • 也可以使用Chrome扩展: Socks5 Configurator

接上

停止brook client

按下组合键 Ctrl+C, 即可停止brook client

[在本地] [图形客户端] 如何下载图形客户端

  • macOS系统的图形客户端 Brook.pkg 可在Github Releases页面下载
  • Windows系统的图形客户端 Brook.exe 可在Github Releases页面下载
  • Android系统的图形客户端 Brook.apk 可在Github Releases页面下载
  • iOS系统的图形客户端在AppStore搜索Brook下载

注意

  • iOS系统你需要使用 非中国大陆区 的Apple ID

[在本地] [图形客户端] 如何使用图形客户端

比如这里假设你的brook server服务器的IP是1.2.3.4, 端口是9999, 密码是111111

打开图形客户端后, 选择Brook, 服务器填写: 1.2.3.4:9999, 密码填写: 111111, 然后点击启动, 如下图:

width:200px

  • 图形客户端会自动配置系统代理, 默认使用https://github.com/txthinking/bypass项目的白名单
  • 如果浏览器未感知到系统代理, 可以重启下浏览器, 建议使用Chrome或Firefox浏览器

总结

  1. Brook的哲学是, 无需配置, 一条命令解决事情, 不将复杂暴露给用户, 让使用最简单化
  2. 你需要已经有一个云Linux服务器
  3. [在云服务器] 如何部署brook server, 以及如何后台运行
  4. [在本地] 如何使用命令行客户端brook client, 以及自己手动修改系统代理
  5. [在本地] 如何使用图形客户端

这里只讨论了brook server 和 brook client, 更多brook命令可以通过brook -h 查看, 或去项目主页查看

(提示: Youtube频道有此幻灯片更详细的视频介绍, 视频末尾还有实际命令行演示)

相关资源