配置PowerShell和CMD代理

此教程是在已经会给电脑配置代理,可以在浏览器访问国外网站,如YouTube的前提下编写的,并不是从零开始教如何配置代理

前言

为什么要单独配

使用PowerShell或CMD时,明明给电脑开了代理,浏览器都能访问的网站,用命令行却访问不了,为什么呢?

因为有的代理软件(如Clash)默认只接管应用层的流量,命令行工具默认不读取系统代理,需要通过环境变量显示指定。

所以在使用命令行下载一些软件时,基本Clash开了代理,依旧龟速,不得不配国内镜像源。

总之就是需要手动给命令行工具配一遍就对了。

要不要永久配置

临时配置是临时修改当前终端进程内存里的环境变量,即只在当前窗口中生效,关掉再打开就要重新配。

而永久配置则是直接修改注册表或全局环境变量,一劳永逸,即使关掉当前窗口再打开依旧生效。

但是,由于配置后就走的是代理的端口,如果把代理软件关掉就会导致原本能访问的国内网页,如百度,都访问不了了,必须一直开着才行。

所以我建议,如果是一直开着代理软件不关,且代理软件的连接很稳定,那可以永久配置。省得每次都手动设置一遍。

接下来演示如何在windows11中给PowerShell和CMD配置代理(win10应该也一样)

PowerShell

临时配置代理

1
2
3
$env:http_proxy="http://127.0.0.1:代理端口"

$env:https_proxy="http://127.0.0.1:代理端口"

分别在PowerShell中执行上面两行命令,其中的代理端口就填代理工具的端口号

image-20260329235111811.png

如图,Clash默认代理端口号是7890,那上面的命令中就填7890,如下

1
$env:http_proxy="http://127.0.0.1:7890"

连接测试

使用下面命令进行测试配置是否成功

1
2
3
4
# 国内测试
curl.exe baidu.com
# 国外测试
curl.exe google.com

image-20260330000243495

注意:

在PowerShell中curlInvoke-WebRequest的别名,并不是curl.exe,所以需要输入完整的curl.exe才行

永久配置

仅当前用户

1
2
3
[Environment]::SetEnvironmentVariable("http_proxy", "http://127.0.0.1:7890", "User")

[Environment]::SetEnvironmentVariable("https_proxy", "http://127.0.0.1:7890", "User")

同样分别执行(若代理端口不是7890,请改成你自己的代理端口)

系统全局(需要管理员权限)

1
2
3
[Environment]::SetEnvironmentVariable("http_proxy", "http://127.0.0.1:7890", "Machine")

[Environment]::SetEnvironmentVariable("https_proxy", "http://127.0.0.1:7890", "Machine")

注意:上面命令中的UserMachine都是写死的,不用修改,User改成自己的用户名了

删除永久配置

删除当前用户代理

1
2
3
[Environment]::SetEnvironmentVariable("http_proxy", $null, "User")

[Environment]::SetEnvironmentVariable("https_proxy", $null, "User")

删除系统全局代理(需要管理员权限)

1
2
3
[Environment]::SetEnvironmentVariable("http_proxy", $null, "Machine")

[Environment]::SetEnvironmentVariable("https_proxy", $null, "Machine")

CMD

临时配置代理

1
2
3
set http_proxy=http://127.0.0.1:代理端口

set https_proxy=http://127.0.0.1:代理端口

分别在CMD中执行上面两行命令,其中的代理端口就填代理工具的端口号

image-20260329235111811.png

如图,Clash默认代理端口号是7890,那上面的命令中就填7890,如下

1
set http_proxy=http://127.0.0.1:7890

连接测试

使用下面命令进行测试配置是否成功

1
2
3
4
# 国内测试
curl baidu.com
# 国外测试
curl google.com

image-20260330122412273

永久配置

仅当前用户

1
2
3
setx http_proxy "http://127.0.0.1:7890"

setx https_proxy "http://127.0.0.1:7890"

同样分别执行(若代理端口不是7890,请改成你自己的代理端口)

系统全局(需要管理员权限)

1
2
3
setx http_proxy "http://127.0.0.1:7890" /M

setx https_proxy "http://127.0.0.1:7890" /M

删除永久配置

删除当前用户代理

1
2
3
REG DELETE "HKCU\Environment" /F /V "http_proxy"

REG DELETE "HKCU\Environment" /F /V "https_proxy"

删除系统全局代理(需要管理员权限)

1
2
3
REG DELETE "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V "http_proxy"

REG DELETE "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V "https_proxy"

补充

有些工具(如 curl、git、npm)同时识别大小写,所以配置http或HTTP都可以

但少数工具只遵循 Unix 标准,只认大写。如需更兼容,可一并配置,即把前面那些命令中的http_proxyhttps_proxy换成HTTP_PROXYHTTPS_PROXY再设置一遍,如:

1
set HTTP_PROXY=http://127.0.0.1:7890
本站于2025年3月26日建立
使用 Hugo 构建
主题 StackJimmy 设计