Mac终端默认不走系统代理,需手动设置http_proxy、https_proxy和all_proxy环境变量:临时生效用export命令,永久生效则写入~/.zshrc(zsh)或~/.bash_profile(bash)并source加载,最后用env | grep -i proxy和curl -v验证。

Mac终端默认不走系统代理,即使你开了ClashX或Surge的全局模式,curl、git clone、brew install 仍会直连失败,导致超时或403错误。
临时启用代理(当前终端窗口有效)
方法一:HTTP/HTTPS代理方式
在终端中直接执行:export http_proxy=http://127.0.0.1:7890 && export https_proxy=http://127.0.0.1:7890
把端口号 【7890】 替换成你本地代理软件实际监听的 HTTP 端口(ClashX 默认是 7890,Surge 可能是 6000)。
方法二:SOCKS5 一键覆盖所有协议
执行:export all_proxy=socks5://127.0.0.1:7891
这行命令能同时接管 http、https、ftp、rsync 等全部请求,比只设 http_proxy 更稳妥。
⚠️别漏掉 https_proxy——很多工具(如 pip、npm、git)默认发 HTTPS 请求,只设 http_proxy 会导致它们仍直连失败。
永久生效(每次新开终端自动加载)
第一步:确认你的 shell 类型
运行 echo $SHELL,输出 /bin/zsh 表示用 zsh;输出 /bin/bash 则用 bash。macOS 12+ 默认是 zsh,配置文件为 ~/.zshrc;bash 用户则改 ~/.bash_profile。【改错文件会导致代理永远不生效】
第二步:编辑配置文件
执行:nano ~/.zshrc
滚动到文件末尾,新增三行(按需替换地址和端口):
export http_proxy=http://127.0.0.1:7890export https_proxy=http://127.0.0.1:7890export all_proxy=socks5://127.0.0.1:7891
第三步:保存并退出
按 Ctrl+O → 回车确认保存 → Ctrl+X 退出 nano 编辑器。
第四步:立即激活新配置source ~/.zshrc
这一步不能跳过,否则只有下次新开终端才生效,当前窗口仍无代理。
验证代理是否真正起作用
方法一:检查环境变量是否写入成功env | grep -i proxy
必须看到 http_proxy、https_proxy、all_proxy 三者全部输出,才算落进去了。
方法二:实测连接路径curl -v https://ipinfo.io/ip 2>&1 | grep "Connected to"
如果输出里显示 Connected to 127.0.0.1 或你的代理监听 IP,说明流量已走代理通道;若显示目标网站真实 IP,则没走代理。
方法三:快速开关对比
先执行 unset http_proxy https_proxy all_proxy,再跑一次 curl https://ipinfo.io/ip 记下结果;然后 source ~/.zshrc 再跑一次,两次 IP 不同即生效。

















