个人头像ztm0929

如何开启终端代理

注意

本文尚处于草稿状态,内容可能不完整或存在错误,如有疑问,欢迎 联系天明 改进!

很多小白打开了系统代理,却发现终端里的下载、安装、更新命令还是慢。原因通常不是网络本身,而是终端会话里没有持续生效的代理环境变量。我们一起来开启「终端代理」,让后续常见命令长期稳定加速。

我们使用小猫咪开启系统代理之后,默认情况下它只会为浏览器和一些常见的应用程序启用代理,而不会自动为终端启用代理。

可以直观地通过数据感受:

git clone

pnpm install

scoop install python

pip install

# 启用代理前
$result = Measure-Command {
    git clone https://github.com/ztm0929/ztm0929.cn.git ztm0929-noproxy
}

$result | Select-Object TotalHours, TotalMinutes, TotalSeconds

TotalHours TotalMinutes TotalSeconds
---------- ------------ ------------
      0.03         1.61        96.71

我们的目标

运行少量命令,为终端成功注入代理,使 gitpip 等命令运行速度提升

开始之前

  • 已开启 系统代理
  • 系统自带 Windows Terminal(Windows 终端)或 Terminal.app(macOS 终端)
  • 具备基本的终端操作能力(打开终端、复制粘贴命令、Enter 回车确认)

动手操作

环境预检

Windows Terminal(终端)
$env:HTTP_PROXY; $env:HTTPS_PROXY;
Terminal.app(终端)
echo $HTTP_PROXY; echo $HTTPS_PROXY;

注入环境变量

Windows Terminal(终端)
"http_proxy","https_proxy","HTTP_PROXY","HTTPS_PROXY" | % { [System.Environment]::SetEnvironmentVariable($_,"http://127.0.0.1:7897","User") }
Windows Terminal(终端)
& {
    [System.Environment]::SetEnvironmentVariable("http_proxy","http://127.0.0.1:7897","User")
    [System.Environment]::SetEnvironmentVariable("https_proxy","http://127.0.0.1:7897","User")
    [System.Environment]::SetEnvironmentVariable("HTTP_PROXY","http://127.0.0.1:7897","User")
    [System.Environment]::SetEnvironmentVariable("HTTPS_PROXY","http://127.0.0.1:7897","User")
}
Windows Terminal(终端)
$env:HTTP_PROXY="http://127.0.0.1:7897"; $env:HTTPS_PROXY="http://127.0.0.1:7897"
Terminal.app(终端)
echo "export http_proxy=http://127.0.0.1:7897" >> ~/.zshrc
echo "export https_proxy=http://127.0.0.1:7897" >> ~/.zshrc

确认注入成功

Windows Terminal(终端)
$env:HTTP_PROXY; $env:HTTPS_PROXY;
Terminal.app(终端)
echo $HTTP_PROXY; echo $HTTPS_PROXY;

测试实际代理效果(可选)

当终端返回 http://127.0.0.1:7897 的结果时,说明已成功注入,我们可以测试一下代理效果,这一步骤不是必需的。

Windows Terminal(终端)
curl.exe ipinfo.io/city
Terminal.app(终端)
curl ipinfo.io/city

可以看看 ipinfo.io/city 返回的结果,它应该是代理服务器所在的城市,而不是我们当前所在的城市。

git clone https://github.com/ztm0929/ztm0929.cn.git

pip install requests

scoop install python

pnpm install next

总结回顾

  1. 检查是否已开启「系统代理」,它是开启「终端代理」的前提
  2. 运行命令注入环境变量
  3. 确认环境变量已注入,成功注入变量就说明「终端代理」已开启
  4. (可选)测试实际代理效果

常见问题

继续探索

完成目标之后,休息一下。我们可以尝试这些:

  • 为 git、pip 等程序单独配置代理
  • 通过 Get-ChildItem Env: 命令,探索除了 HTTP(S)_PROXY 之外的 更多 Windows PowerShell 环境变量

最后更新于

目录