怎么在macOS 和 Windows 命令行配置使用代理指南

在 macOS 和 Windows 上,许多图形界面应用可以自动使用系统代理,但命令行工具(如 curl、wget、git 等)通常需要手动配置代理才能访问外网。本文详细介绍了如何在终端中设置 HTTP、HTTPS 和 SOCKS 代理,包括临时设置和持久化配置的方法。此外,还讲解了如何使用 no_proxy 变量排除特定域名,避免本地或内网服务受代理影响。无论你是开发者、系统管理员,还是需要科学上网的用户,这篇指南都能帮助你顺利配置命令行代理,让你的终端也能轻松访问互联网。

阅读时长: 3 分钟
共 1369字
作者: eimoon.com

在使用 macOS 或 Windows 时,你可能会遇到这样的情况:

  • 浏览器和 GUI 应用可以通过代理访问外网
  • 但命令行工具(如 curlwgetgit)无法使用代理

这是因为大多数命令行工具不会自动读取系统代理设置,需要 手动配置环境变量。本文介绍在 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:修改系统环境变量

  1. 打开 “环境变量” 设置(搜索 “编辑系统环境变量”)。
  2. 在 “用户变量” 中新增:
    • http_proxy=http://<代理服务器>:<端口>
    • https_proxy=http://<代理服务器>:<端口>
  3. 关闭后重新打开 CMD/Powershell 使其生效。

三、代理配置常见问题

  1. 代理地址错误:确保代理服务器地址和端口正确。
  2. 代理协议错误:HTTP 代理 或者 SOCKS 代理要正确设置。
  3. 防火墙阻拦:检查本地防火墙或代理服务器是否允许访问。
  4. 代理认证:如果代理需要用户名密码,使用 http://user:password@<代理>:<端口> 方式。
  5. 部分工具不支持环境变量代理:可查看工具文档或使用 --proxy 参数手动指定代理。
  6. 测试代理是否生效
    curl ipinfo.io  # 或者 wget ipinfo.io
    

四、总结

通过本文的介绍,相信你已经掌握了在 macOS 和 Windows 系统中,为命令行工具设置网络代理的方法。 无论是临时使用还是持久化设置,你都可以根据自己的需求选择合适的方式。 希望这些指南能够帮助你解决命令行工具的网络代理问题,让你的终端也能畅通无阻地访问互联网!

如果你在设置过程中遇到任何问题,或者有其他关于命令行代理配置的技巧,欢迎在评论区留言分享,一起交流学习!

关注我获取更多资讯

公众号
📢 公众号
个人号
💬 个人号
使用 Hugo 构建
主题 StackJimmy 设计