在使用 macOS 或 Windows 时,你可能会遇到这样的情况:
- 浏览器和 GUI 应用可以通过代理访问外网
- 但命令行工具(如
curl
、wget
、git
)无法使用代理
这是因为大多数命令行工具不会自动读取系统代理设置,需要 手动配置环境变量。本文介绍在 macOS 和 Windows 中配置命令行代理的方法。
一、macOS 命令行代理设置
1. 临时设置代理(仅当前终端有效)
export http_proxy=http://<代理服务器>:<端口> # 只有在访问 HTTP 站点(如某些老旧或本地服务)时才需要。
export https_proxy=http://<代理服务器>:<端口>
export all_proxy=socks5://<代理服务器>:<端口> # SOCKS 代理
export no_proxy="localhost,127.0.0.1,.example.com" # 可选
示例:
export http_proxy=http://127.0.0.1:1080
如果代理需要认证:
export http_proxy=http://user:[email protected]:1080
如果你只是临时使用 HTTPS 代理,可以简化为
export https_proxy=http://<代理服务器>:<端口>
即可。
2. 持久化设置代理(每次打开终端自动生效)
将以下内容添加到 ~/.zshrc
(默认)或 ~/.bashrc
文件:
export http_proxy=http://127.0.0.1:1080
export https_proxy=http://127.0.0.1:1080
然后运行:
source ~/.zshrc # 或 source ~/.bashrc
二、Windows 命令行代理设置
1. 临时设置代理(仅当前 CMD/Powershell 有效)
CMD:
set http_proxy=http://<代理服务器>:<端口>
set https_proxy=http://<代理服务器>:<端口>
set no_proxy=localhost,127.0.0.1,.example.com
Powershell:
$env:http_proxy="http://<代理服务器>:<端口>"
$env:https_proxy="http://<代理服务器>:<端口>"
2. 持久化设置代理(每次打开 CMD/Powershell 自动生效)
方法 1:使用 setx
setx http_proxy http://<代理服务器>:<端口>
setx https_proxy http://<代理服务器>:<端口>
方法 2:修改系统环境变量
- 打开 “环境变量” 设置(搜索 “编辑系统环境变量”)。
- 在 “用户变量” 中新增:
http_proxy=http://<代理服务器>:<端口>
https_proxy=http://<代理服务器>:<端口>
- 关闭后重新打开 CMD/Powershell 使其生效。
三、代理配置常见问题
- 代理地址错误:确保代理服务器地址和端口正确。
- 代理协议错误:HTTP 代理 或者 SOCKS 代理要正确设置。
- 防火墙阻拦:检查本地防火墙或代理服务器是否允许访问。
- 代理认证:如果代理需要用户名密码,使用
http://user:password@<代理>:<端口>
方式。 - 部分工具不支持环境变量代理:可查看工具文档或使用
--proxy
参数手动指定代理。 - 测试代理是否生效:
curl ipinfo.io # 或者 wget ipinfo.io
四、总结
通过本文的介绍,相信你已经掌握了在 macOS 和 Windows 系统中,为命令行工具设置网络代理的方法。 无论是临时使用还是持久化设置,你都可以根据自己的需求选择合适的方式。 希望这些指南能够帮助你解决命令行工具的网络代理问题,让你的终端也能畅通无阻地访问互联网!
如果你在设置过程中遇到任何问题,或者有其他关于命令行代理配置的技巧,欢迎在评论区留言分享,一起交流学习!
关注我获取更多资讯

📢 公众号

💬 个人号