Brook 透明代理网关在 Windows

https://talks.txthinking.com
Created at: 06 Apr 2022
Updated at: 06 Apr 2022
cloud@txthinking.com

Brook

https://github.com/txthinking/brook

Windows 版本

Only Windows 10 Pro or Enterprise, version 1803 (“April 2018 Update”) or later

修改系统编码

Windows 设置 -> 时间和语言 -> 语言 -> 管理语言设置 -> 更改系统区域设置 -> 使用 UTF-8 -> 确定. 重启电脑

安装 multipass

版本要 >= 1.9.0

  1. 下载 .exe 文件, https://github.com/canonical/multipass/releases
  2. 安装, 直接全程默认下一步. 我忘了是否需要重启电脑
  3. 运行它. 系统托盘处会出现一个图标。只需要运行它,不需要操作它。下面咱们继续用 CMD 终端来操作

设置桥接网络

查看网卡列表

multipass networks

输出大概是这样的

Name                   Type      Description
Default Switch         switch    Virtual Switch with internal networking
WLAN                   wifi      Broadcom 802.11ac Network Adapter
以太网                 ethernet  Broadcom NetXtreme Gigabit Ethernet

选择你的有线网卡名字,这里是以太网, 当然你的 windows 需要接入网线,无线网卡可能不能好好工作

配置桥接网络

用管理员身份打开一个 CMD 终端

multipass set local.bridged-network="以太网"

关闭这个管理员身份打开的 CMD 终端, 下面继续用普通用户的 CMD 终端

创建一个实例

命名为 mybrook

multipass launch --name mybrook --bridged

下载 brook_linux_amd64 文件和 joker_linux_amd64 文件

https://github.com/txthinking/brook/releases/latest/download/brook_linux_amd64

https://github.com/txthinking/joker/releases/latest/download/joker_linux_amd64

把当前目录下 brook_linux_amd64 文件 和 joker_linux_amd64 文件复制到 mybrook/tmp/ 目录下

multipass transfer brook_linux_amd64 mybrook:/tmp/brook
multipass transfer joker_linux_amd64 mybrook:/tmp/joker

进入 mybrook

multipass shell mybrook

开始咱们的操作

切换到 root

sudo su

把刚才 /tmp/ 目录下的 joker, brook 命令复制到 /usr/bin/ 下

mv /tmp/joker /usr/bin/joker
chmod +x /usr/bin/joker
mv /tmp/brook /usr/bin/brook
chmod +x /usr/bin/brook

停止占用 53 端口的 systemd-resolved

systemctl stop systemd-resolved
systemctl disable systemd-resolved
echo nameserver 8.8.8.8 > /etc/resolv.conf

启动 brook tproxy, 更多参数和规则 --help 去查看

joker brook tproxy --link 'brook://...' --dnsListen :53

查看是否启动成功

joker list

如果没有在运行,看一下错误日志

joker log `joker last`

退出 root 用户

exit

退出 mybrook

exit

查看网关 IP

multipass info mybrook

和你主机同一网段的那个 IP 就是创建出来的网关

把其他设备的网关和 DNS 都设置成这个 IP 就可以了