为终端设置代理
在 Windows 上为终端设置代理与 Linux 或 macOS 不同,Windows 的情况稍微复杂一些,因为不同的终端(或更准确地说,不同的 Shell 环境)设置方法不同。
没有一个“总开关”能一次性为所有终端设置好代理。您需要根据您正在使用的环境(cmd
、PowerShell
、Git Bash
或 WSL
)选择对应的方法。
最通用、最标准的方法是设置环境变量。
# 方法一:为 Command Prompt (cmd.exe) 和 PowerShell 设置代理
这是最常见的方法,适用于 Windows 自带的终端环境。
# 1. 临时设置 (仅对当前窗口有效)
这种方式最适合临时使用,关闭终端窗口后代理设置会自动失效。
在 Command Prompt (
cmd.exe
) 中: 使用set
命令。假设您的代理服务器地址是127.0.0.1
,端口是7890
。set HTTP_PROXY=http://127.0.0.1:7890 set HTTPS_PROXY=http://127.0.0.1:7890 set HTTP_PROXY=http://127.0.0.1:10809 set HTTPS_PROXY=http://127.0.0.1:10809
1
2
3
4
5
如果你的代理需要用户名和密码,格式如下:
set HTTP_PROXY=http://username:password@127.0.0.1:7890
在 PowerShell 中: 语法略有不同,使用
$env:
。$env:HTTP_PROXY="http://127.0.0.1:7890" $env:HTTPS_PROXY="http://127.0.0.1:7890"
1
2
# 2. 永久设置 (对所有新开的终端有效)
这种方式会将代理设置为系统环境变量,一劳永逸。
推荐方式:使用
setx
命令 (在cmd
或PowerShell
中均可执行)setx
命令会将变量永久写入注册表。注意:setx
设置的变量只对新打开的终端窗口生效,对当前窗口无效。setx HTTP_PROXY "http://127.0.0.1:7890" setx HTTPS_PROXY "http://127.0.0.1:7890"
1
2设置完成后,你需要重启终端才能让它生效。
图形界面方式:通过系统属性
- 在开始菜单搜索 “编辑系统环境变量” 并打开。
- 在弹出的窗口中,点击右下角的 “环境变量...” 按钮。
- 在 “用户变量” 或 “系统变量” 区域点击 “新建...”。
- 变量名:
HTTP_PROXY
- 变量值:
http://127.0.0.1:7890
- 变量名:
- 重复一次,创建
HTTPS_PROXY
。 - 一路点击“确定”保存。同样,此方法也需要重启终端才能生效。
# 如何取消代理?
临时取消 (当前窗口):
cmd
:set HTTP_PROXY=
PowerShell
:$env:HTTP_PROXY=""
永久取消:
cmd
/PowerShell
:setx HTTP_PROXY ""
- 或在图形界面中删除对应的环境变量。
# 方法二:为 Git Bash 或其他 MSYS2/MinGW 环境设置代理
Git Bash 模拟的是 Linux 环境,因此它使用 Linux 的标准方式。
临时设置 (当前窗口): 使用
export
命令。注意: 很多 Linux 工具也认小写的变量名,所以建议大小写一起设置。export HTTP_PROXY="http://127.0.0.1:7890" export HTTPS_PROXY="http://127.0.0.1:7890" export http_proxy="http://127.0.0.1:7890" export https_proxy="http://127.0.0.1:7890"
1
2
3
4永久设置: 将
export
命令写入 Bash 的配置文件~/.bashrc
或~/.bash_profile
中。echo 'export HTTP_PROXY="http://127.0.0.1:7890"' >> ~/.bashrc echo 'export HTTPS_PROXY="http://127.0.0.1:7890"' >> ~/.bashrc echo 'export http_proxy="http://127.0.0.1:7890"' >> ~/.bashrc echo 'export https_proxy="http://127.0.0.1:7890"' >> ~/.bashrc # 让配置立即生效 source ~/.bashrc
1
2
3
4
5
6
7取消代理: 使用
unset
命令(临时)或删除配置文件中的相关行(永久)。unset HTTP_PROXY
# 方法三:为 WSL (Windows Subsystem for Linux) 设置代理
WSL 是一个完整的 Linux 环境,其网络与 Windows 宿主机相通。设置方法与 Git Bash 完全相同,也是通过修改 ~/.bashrc
或 ~/.zshrc
等文件来实现。
一个技巧: WSL 可以直接访问宿主机的端口,所以如果你的代理软件运行在 Windows 上,127.0.0.1
可能无法直接使用。你应该使用宿主机的 IP 地址。一个更简单的方法是利用 WSL 自动生成的一个 DNS host
:
# 在 WSL 终端中执行
export HOST_IP=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
export HTTP_PROXY="http://$HOST_IP:7890"
export HTTPS_PROXY="http://$HOST_IP:7890"
2
3
4
你可以把这几行加到你的 ~/.bashrc
文件中,这样每次启动 WSL 终端时都会自动设置代理。
# 如何验证代理是否生效?
在设置好代理的终端中,运行以下命令:
curl -v https://www.google.com
如果你看到输出中有类似 * Connected to 127.0.0.1 (127.0.0.1) port 7890 (#0)
的字样,说明 curl
命令成功通过了你的代理服务器,表示设置成功。
# 特别注意:某些工具不使用环境变量
少数命令行工具会忽略系统环境变量,需要单独配置代理,例如:
- Git:
git config --global http.proxy http://127.0.0.1:7890
- NPM:
npm config set proxy http://127.0.0.1:7890
- Docker: 需要在 Docker Desktop 的设置 (Settings -> Resources -> Proxies) 中单独配置。
总结:对于绝大多数开发者来说,通过 setx
或系统属性图形界面设置永久环境变量 HTTP_PROXY
和 HTTPS_PROXY
是最一劳永逸的方法。