brook link - brook 的高阶用法

2022-10-28

本文介绍一下 brook link

https://txthinking.github.io/brook/protocol/brook-link-protocol.html

我们知道 brook 支持创建 brook server, brook wsserver, brook wssserver, brook socks5, 以及未来可能会支持的新的类型。

一般情况下,在客户端使用时只需要输入两个概念,Server 和 Password,比如

brook server

1.2.3.4:9999
password

brook wsserver

ws://1.2.3.4:9999
password

brook wssserver

wss://domain.com:443
password

brook socks5 需要输入一个概念或三个概念,这个是由 socks5 协议标准决定的,只能遵守

1.2.3.4:1080

1.2.3.4:1080
username
password

为什么要尽量保持两个概念

这个设计的出发点是,因为对于普通用户来说,普遍已经熟悉的登录操作,一般就是两个概念,用户名或等价的东西,和,密码。

最一开始只有 brook server,其 Server 类似这样 1.2.3.4:9999,看起来其实比较整洁干净。后来增加了 wsserver 和 wssserver 也顺势保留了个设计理念,并且把其表层协议放到了 Server 上,类似 ws://1.2.3.4:9999,wss://domain.com:443。

高阶用法 brook link

对于喜欢研究的同学,可能知道,brook server, brook wsserver, brook wssserver 都分别有高阶用法,大部分用户可能用不到,这些高阶用法就是由 brook link 来支持的。

比如 brook server

--udpovertcp 可以指定UDP over TCP
--name 图形客户端展示的名字

举例

brook link -s 1.2.3.4:9999 -p hello --name MyName

比如 brook wsserver

--address 可以指定IP,比如有同学用来指定 cloudfare 的IP
--name 图形客户端展示的名字

举例

brook link -s ws://1.2.3.4:9999 -p hello --name MyName

比如 brook wssserver

--address 可以指定IP,比如有同学用来指定 cloudfare 的IP
--insecure 可以客户端不验证 Server 的证书
--withoutBrookProtocol 可以指定内容不使用 brook 协议加密,当然需要 Server 端配合
--ca 指定 CA 证书,当然需要 Server 端配合
--name 图形客户端展示的名字

举例

brook link -s wss://domain.com:443 -p hello --name MyName

具体可以查看文档中的事例

https://txthinking.github.io/brook/

也可以通过 brook link --help 查看

善用 brook --help 以及 brook xxx --help 其实是会节省你的时间的,比如即使是作为作者,我也记不住那么多参数,所以我每次输入命令或子命令的时候,一个 --help 就会让我知道想输入什么了。

获取 socks5 的 brook link

brook link -s socks5://1.2.3.4:1080

或者需要认证的 socks5

brook link -s socks5://1.2.3.4:1080 --username hello --password hello

接受 brook link 作为输入的有哪些

因为有特殊符号,注意需要用引号括起来

brook tproxy --link "brook://..."
brook connect --link "brook://..."
brook testbrook --link "brook://..."
tun2brook --link "brook://..."
Brook 图形客户端

首先生成 brook link 再去输入其他命令会不会很麻烦?

其实 shell 有一个用法,小引号的输出直接作为命令的一部分,比如我们要测试一个 brook server

1.2.3.4:9999
password
brook testbrook `brook link -s 1.2.3.4:9999 -p password`

讨论