mac终端设置代理
在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)会优先使用。
- 对于HTTP/HTTPS代理,运行以下命令(替换为你的代理地址和端口):
-
验证代理:
- 测试代理是否生效:
curl -I https://www.google.com
- 若返回HTTP状态码(如200),说明代理生效。若失败,检查代理地址或网络。
- 测试代理是否生效:
-
取消临时代理:
- 清除代理设置:
unset http_proxy https_proxy all_proxy
- 清除代理设置:
方法 2:持久化代理配置(全局生效)
适用于长期使用代理,配置写入终端配置文件。
-
编辑终端配置文件:
- 确定你的终端Shell:
- 默认zsh:编辑
~/.zshrc
。 - bash:编辑
~/.bashrc
。
- 默认zsh:编辑
- 打开配置文件(以zsh为例):
nano ~/.zshrc
- 确定你的终端Shell:
-
添加代理设置:
- 在文件末尾添加以下行(替换为你的代理地址和端口):
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
- 或重启终端。
- 保存文件(nano中按
-
验证代理:
- 测试:
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
- 设置HTTP/HTTPS代理:
-
配置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
已执行,或重启终端。
- 确保
- 若有具体错误信息,请提供,我可进一步协助。