在Mac上配置终端走代理,需设置终端(如zsh或bash)使用HTTP/HTTPS/SOCKS代理,以便命令行工具(如curl、git、npm)通过代理访问网络。以下是详细步骤,适用于macOS 10.15及以上版本。
前提条件
代理服务器信息:需知道代理服务器的地址、端口及类型(HTTP、HTTPS或SOCKS)。例如:http://proxy.example.com:8080 或 socks5://127.0.0.1:1080。终端:默认使用zsh(macOS Catalina及以上),若使用bash,步骤类似。管理员权限:部分配置可能需要修改系统文件。
配置步骤
以下是配置终端走代理的几种方法,根据需求选择适合的方案。
方法 1:临时设置代理(单次会话)
适用于临时测试代理设置,关闭终端后失效。
打开终端:
打开“应用程序 > 实用工具 > 终端”。
设置环境变量:
对于HTTP/HTTPS代理,运行以下命令(替换为你的代理地址和端口):export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
export all_proxy=http://proxy.example.com:8080
对于SOCKS5代理,运行:export all_proxy=socks5://127.0.0.1:1080
说明:
http_proxy:用于HTTP请求。https_proxy:用于HTTPS请求。all_proxy:通用代理设置,部分工具(如curl)会优先使用。
验证代理:
测试代理是否生效:curl -I https://www.google.com
若返回HTTP状态码(如200),说明代理生效。若失败,检查代理地址或网络。
取消临时代理:
清除代理设置:unset http_proxy https_proxy all_proxy
方法 2:持久化代理配置(全局生效)
适用于长期使用代理,配置写入终端配置文件。
编辑终端配置文件:
确定你的终端Shell:
默认zsh:编辑 ~/.zshrc。bash:编辑 ~/.bashrc。
打开配置文件(以zsh为例):nano ~/.zshrc
添加代理设置:
在文件末尾添加以下行(替换为你的代理地址和端口):export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
export all_proxy=http://proxy.example.com:8080
SOCKS5代理示例:export all_proxy=socks5://127.0.0.1:1080
保存并应用:
保存文件(nano中按 Ctrl+O,回车,然后 Ctrl+X 退出)。应用配置:source ~/.zshrc
或重启终端。
验证代理:
测试:curl -I https://www.google.com
确认是否通过代理访问。
方法 3:特定工具的代理配置
某些工具(如git、npm)需要单独配置代理。
配置git代理:
设置HTTP/HTTPS代理:git config --global http.proxy http://proxy.example.com:8080
git config --global https.proxy http://proxy.example.com:8080
SOCKS5代理:git config --global http.proxy socks5://127.0.0.1:1080
git config --global https.proxy socks5://127.0.0.1:1080
取消git代理:git config --global --unset http.proxy
git config --global --unset https.proxy
配置npm代理:
设置代理:npm config set proxy http://proxy.example.com:8080
npm config set https-proxy http://proxy.example.com:8080
取消npm代理:npm config delete proxy
npm config delete https-proxy
方法 4:使用代理客户端(如Shadowsocks、V2Ray)
若使用代理客户端(如Shadowsocks、V2Ray),可通过系统代理或本地SOCKS5代理配置终端。
检查代理客户端:
确保代理客户端运行并提供本地代理端口(如 127.0.0.1:1080)。
配置终端走本地代理:
编辑 ~/.zshrc,添加:export http_proxy=http://127.0.0.1:1080
export https_proxy=http://127.0.0.1:1080
export all_proxy=socks5://127.0.0.1:1080
保存并运行:source ~/.zshrc
验证:
测试:curl -I https://www.google.com
注意事项
大小写敏感:环境变量 http_proxy 和 HTTP_PROXY 可能被不同工具识别,确保使用小写形式(如 http_proxy),部分工具也支持大写。代理认证:
若代理需要用户名和密码,格式为:export http_proxy=http://username:password@proxy.example.com:8080
绕过代理:
设置 no_proxy 跳过特定域名:export no_proxy="localhost,127.0.0.1,.example.com"
系统代理同步:
若已通过系统偏好设置配置代理(系统设置 > 网络 > 高级 > 代理),终端可能自动继承,优先级低于手动设置。
性能问题:
代理可能导致命令行工具(如Homebrew、npm)速度变慢,检查代理服务器稳定性。
取消持久化配置:
编辑 ~/.zshrc 或 ~/.bashrc,删除相关代理行,运行 source ~/.zshrc。
问题排查
代理无效:
确认代理服务器地址和端口正确。测试代理:curl -x http://proxy.example.com:8080 https://www.google.com。
连接超时:
检查代理客户端是否运行,或网络防火墙是否阻止连接。
命令未生效:
确保 source ~/.zshrc 已执行,或重启终端。
若有具体错误信息,请提供,我可进一步协助。