Junjun&3588 个人博客

-个人博客-
热爱技术,喜欢科技. Hello Coder!!
  1. 首页
  2. 技术点滴
  3. Linux
  4. 正文

macOS 正确安装与配置 proxychains-ng 终极指南

2025-11-08 38点热度 0人点赞 0条评论

副标题: 一次搞定!从零开始,完美解决 command not found 和 SIP 导致的“代理无效”问题

简介

在 macOS 上,我们经常需要让命令行工具(比如 gemini cli、curl 或 git)通过一个本地代理(如 SOCKS5)访问网络。

proxychains-ng 是解决这个问题的“神器”,它能“强制”任何程序通过你的代理。

然而,在 macOS 上的安装配置有几个著名的“天坑”:

  1. 安装后提示 command not found。
  2. 配置后运行,却发现它根本没有生效(依然显示真实 IP)。

本指南将带你从零开始,一次性“正确”地完成所有配置,完美避开这些问题。


第一步:安装 (使用 Homebrew)

我们假设你已经安装了 Homebrew。打开你的 Terminal,运行:

# 安装 proxychains-ng
brew install proxychains-ng

# 【关键】同时安装 Homebrew 版本的 curl
# 为什么?我们稍后会解释。这是为了解决 SIP 保护问题。
brew install curl

第二步:配置 proxychains.conf 文件

安装后,我们需要告诉 proxychains 你的本地代理在哪里。

  1. 找到配置文件:

    • Apple Silicon (M1/M2/M3...): /opt/homebrew/etc/proxychains.conf
    • Intel Mac: /usr/local/etc/proxychains.conf
  2. 编辑文件(请使用你自己的 Mac 对应的路径):

    # 示例:使用 nano 编辑器,针对 Apple Silicon
    nano /opt/homebrew/etc/proxychains.conf
  3. 修改 [ProxyList]: 滚动到配置文件的最底部,找到 [ProxyList]。

    • 注释掉 (加 #) 默认的示例 (通常是 socks4 127.0.0.1 9050)。
    • 添加你自己的代理信息。

    假设你的本地代理是 127.0.0.1 端口 8080 (SOCKS5 混合端口),配置如下:

    [ProxyList]
    # 把默认的这行注释掉
    # socks4  127.0.0.1 9050
    
    # 添加你自己的代理
    # (推荐使用 socks5h,'h' 表示代理服务器负责 DNS 解析,防止 DNS 泄露)
    socks5h 127.0.0.1 8080
  4. 保存并退出 (在 nano 中:按 Control + O 保存, Enter 确认, Control + X 退出)。


第三步:【核心】配置 PATH,解决两大天坑

这是本指南最重要的一步。我们将通过配置 .zshrc (假设你使用 Zsh) 来一劳永逸地解决 command not found 和 SIP 代理无效的问题。

  1. 打开配置文件:

    nano ~/.zshrc
  2. 在文件末尾添加以下三行: 这三行代码将确保 Shell 优先找到 Homebrew 安装的程序。

    # --- ProxyChains & Homebrew 路径配置 ---
    
    # (解决天坑1:让 Shell 找到 proxychains4 命令)
    export PATH="/opt/homebrew/bin:$PATH"
    
    # (解决天坑2:强制使用 Homebrew 的 curl,绕过 SIP 保护)
    export PATH="/opt/homebrew/opt/curl/bin:$PATH"
    
    # (可选,但推荐:设置一个别名,用 'pc' 代替 'proxychains4')
    alias pc='proxychains4'
    # --- 配置结束 ---

    (注意: 如果你是 Intel Mac,请把 /opt/homebrew 替换为 /usr/local)

  3. 保存并退出 (Control + O, Enter, Control + X)。

  4. 【关键】让配置生效! 你必须完全关闭当前的 Terminal 窗口,然后打开一个全新的窗口。 (或者,在当前窗口运行 source ~/.zshrc 来重新加载)


第四步:测试与验证

在你的新 Terminal 窗口中,执行以下测试:

1. 验证 curl 路径

检查你是否在使用“未受保护”的 curl 版本:

which curl
  • 正确输出: /opt/homebrew/opt/curl/bin/curl
  • 错误输出: /usr/bin/curl (如果是这个,说明第三步没做对)

2. 验证 proxychains (别名)

检查别名是否生效:

which pc
  • 正确输出: pc: alias to proxychains4

3. 最终测试:IP 地址

测试 A (不通过代理):

 curl -4 ip.me
  • 输出:你的真实 IP 地址 测试 B (通过代理):
    pc curl -4 ip.me

如果你在测试 B 中看到了与测试 A 不同的 IP 地址,恭喜你,你已成功!


总结

现在,你可以使用这个简洁的 pc 别名来为你所有需要代理的命令服务了:

# 访问 Gemini CLI
pc gemini [你的命令]

# 使用 git clone
pc git clone [仓库地址]

# 任何其他命令...
pc [command]
标签: 暂无
最后更新:2025-11-08

admin3588

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

COPYRIGHT © 2022 Junjun&3588 个人博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang