命令行三部曲(三)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, 然后点击启动, 如下图:

总结

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

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

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

相关资源