Brook 透明代理网关在 M1 macOS

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

Brook

https://github.com/txthinking/brook

安装 multipass

版本要 >= 1.9.0

  1. 下载 .pkg 文件, https://github.com/canonical/multipass/releases
  2. 安装
  3. 运行它. 系统托盘处会出现一个图标。只需要运行它,不需要操作它。下面咱们继续用系统带的终端来操作

设置驱动

sudo multipass set local.driver=qemu

设置桥接网络

查看网卡列表

multipass networks

输出大概是这样的

Name     Type         Description
bridge0  bridge       Network bridge with en2, en3, en4, en5
en0      ethernet     Ethernet
en1      wifi         Wi-Fi
en2      thunderbolt  Thunderbolt 1
en3      thunderbolt  Thunderbolt 2
en4      thunderbolt  Thunderbolt 3
en5      thunderbolt  Thunderbolt 4

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

配置桥接网络

sudo multipass set local.bridged-network=en0

创建一个实例

命名为 mybrook

multipass launch --name mybrook --bridged

下载 brook_linux_arm64 文件和 joker_linux_arm64 文件

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

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

把当前目录下 brook_linux_arm64 文件 和 joker_linux_arm64 文件复制到 mybrook/tmp/ 目录下

multipass transfer brook_linux_arm64 mybrook:/tmp/brook
multipass transfer joker_linux_arm64 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 就可以了