Xz's blog Xz's blog
首页
时间序列
多模态
合成生物学
其他方向
生活
工具相关
PyTorch
导航站

Xu Zhen

首页
时间序列
多模态
合成生物学
其他方向
生活
工具相关
PyTorch
导航站
  • Rust

  • Rust-Windows 窗口自动化

  • Tauri

  • C++

  • Claude Code

  • Liunx相关

  • Windows相关

    • 为终端设置代理
      • 杀死占用某端口的进程
    • IDE

    • Conda

    • Docker

    • VMware虚拟机

    • Python常用代码片段

    • 工具相关
    • Windows相关
    xuzhen
    2025-08-28
    目录

    为终端设置代理

    在 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

      设置完成后,你需要重启终端才能让它生效。

    • 图形界面方式:通过系统属性

      1. 在开始菜单搜索 “编辑系统环境变量” 并打开。
      2. 在弹出的窗口中,点击右下角的 “环境变量...” 按钮。
      3. 在 “用户变量” 或 “系统变量” 区域点击 “新建...”。
        • 变量名: HTTP_PROXY
        • 变量值: http://127.0.0.1:7890
      4. 重复一次,创建 HTTPS_PROXY。
      5. 一路点击“确定”保存。同样,此方法也需要重启终端才能生效。

    # 如何取消代理?

    • 临时取消 (当前窗口):

      • 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"
    
    1
    2
    3
    4

    你可以把这几行加到你的 ~/.bashrc 文件中,这样每次启动 WSL 终端时都会自动设置代理。


    # 如何验证代理是否生效?

    在设置好代理的终端中,运行以下命令:

    curl -v https://www.google.com
    
    1

    如果你看到输出中有类似 * 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 是最一劳永逸的方法。

    #Windows
    上次更新: 2025/09/02, 10:25:30

    ← Linux 通过Windows代理上网 杀死占用某端口的进程→

    最近更新
    01
    Linux 通过Windows代理上网
    09-18
    02
    vscode远程使用copilot和codex(内网环境)
    09-18
    03
    跨机器克隆环境
    09-18
    更多文章>
    Theme by Vdoing | Copyright © 2025-2025 Xu Zhen | 鲁ICP备2025169719号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式