前言

公司发的电脑是M4芯片的Mac,那到手当然是要自己安装环境,但是 Terminal 并不走 Clash 的全局代理,而通过 proxifier 和那些命令行工具的代理参数又过于繁琐,所以考虑 proxychains ,安装的时候踩了许多坑,网上大多数都是教你用 brew 一键安装(这个架构不支持),然而编译安装的教程又是缺斤少两的,在参考了项目 issues 和一篇文章的教程下,整理了这份一个流程下来就能解决的方法。

正文

安装过程还是有点繁琐的,需要重启进入恢复模式修改配置

步骤1

# 1.通过 `git` 下载 `proxychains-ng` 项目,并进入项目文件
➜  $ git clone https://github.com/rofl0r/proxychains-ng
➜  $ cd proxychains-ng

# 2.设置好编译选项,指定目标 `CPU` 架构为 `arm64`
➜  $ CFLAGS="-arch arm64" LDFLAGS="-arch arm64" ./configure

# 3.执行 `make` 命令,不要执行 `make install` / `install`
➜  $ make

# 4.重命名项目文件夹
➜  $ cd ..
➜  $ mv proxychains-ng proxychains-ng-temp

步骤2

# 1.关机
# 2.长按 `电源键` 进入 `恢复模式`
# 3.点击 `Settings/Options`
# 4....
# 5.打开 `Terminal` ,在 `Terminal` 中输入 `csrutil disable` ,然后输入 `y` ,再输入用户账号密码
# 6.关闭 `csrutil` 后,输入 `reboot` 进行重启
# 7.电脑开机登录后,打开 `Terminal` ,输入 `sudo nvram boot-args=-arm64e_preview_abi`
# 8.然后再进行重启 `sudo reboot`

步骤3

# 1.再次通过 `git` 下载 `proxychains-ng` 项目,并进入项目文件
➜  $ git clone https://github.com/rofl0r/proxychains-ng
➜  $ cd proxychains-ng

# 2.设置好编译选项,指定目标 `CPU` 架构为 `arm64e` ,我这里的电脑是m4芯片,所以后面是 `--fat-binary-m4`, 根据个人需要进行修改
➜  $ CCFLAGS="-arch arm64e" LDFLAGS="-arch arm64e" ./configure --prefix=/usr/local --bindir=/usr/local/bin --libdir=/usr/local/lib --fat-binary-m4

# 3.执行`make`命令,不要执行 `make install` / `install`
➜  $ make

步骤4

# 查看文件,两个编译的项目在同一个文件夹下
➜  $ ls
proxychains-ng proxychains-ng-temp

# 删除 `arm64e` 编译项目中的 `proxychains4` 和 `proxychains4-daemon`
➜  $ rm -rf proxychains-ng/proxychains4 proxychains-ng/proxychains4-daemon

# 复制 `arm64` 编译项目中的 `proxychains4` 和 `proxychains4-daemon` 到 `arm64e` 编译项目下
➜  $ cp proxychains-ng-temp/proxychains4 proxychains-ng-temp/proxychains4-daemon ./proxychains-ng

# 复制 `libproxychains4.dylib`
➜  $ cd proxychains-ng
➜  $ mkdir bak && cp libproxychains4.dylib bak

# 将 `libproxychains4.dylib` 复制到系统目录下
➜  $ sudo ./tools/install.sh -D -m 644 bak/libproxychains4.dylib /usr/local/lib/libproxychains4.dylib

步骤5(根据需要加入环境变量中)

➜  $ sudo cp proxychains-ng/proxychains4 /usr/local/bin/
➜  $ sudo cp proxychains-ng/proxychains4-daemon /usr/local/bin/