简介

有时候我们在电脑上打开了科学上网的工具,就以为所有的流量会经过代理,但是当我们在电脑上打开终端,试图执行git clone或者pip install的时候,就会发现443连接超时的错误,这是因为我们的终端并没有走代理的原因。

解决办法

Linux系统

在linux系统中,我们可以实验proxychains这个软件去解决这个问题,具体的安装方法可以参考我之前的文章:Proxychains4使用教程

Windows系统

CMD下

  1. 临时有效

    1
    2
    set http_proxy=http://127.0.0.1:1081
    set https_proxy=http://127.0.0.1:1081
  2. 长期有效

    • 新建一个cmd_init.cmd,将上面的命令放入其中。
    • 打开注册表:win+R-> 输入regedit后运行
    • 找到HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\,在文件夹下,新建字符串值AutoRun,数据的值是一个绝对路径,路径指向新建的cmd_init.cmd,可以将这个文件放在C盘根目录,即路径为C:\cmd_init.cmd
    • 重新打开终端,你会看到命令行会先运行这两条命令,而不需要你自己输入。

Powershell下

  1. 临时有效

    1
    2
    3
    4
    $env:http_proxy = "http://127.0.0.1:1081"
    $env:https_proxy = "http://127.0.0.1:1081"

    # 注意:`$env:`前面的美元符号是必须的,否则会报错。
  2. 长期有效

    • 在 PowerShell 窗口中运行如下指令:
    1
    2
    if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
    notepad $PROFILE
    • 默认会使用记事本打开一个文件,在文件中加入上面设置代理的命令,保存关闭即可。

    上面的配置文件在此电脑\文档\WindowsPowerShell下,文件名为:Microsoft.PowerShell_profile.ps1, 这个文件的内容会在PowerShell的每次运行时使用。

其他

git

1
2
3
4
5
6
7
# 设置代理
git config --global http.proxy http://127.0.0.1:1081
git config --global https.proxy http://127.0.0.1:1081

# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

结尾

  • 代理的端口是由你所使用的软件的端口所决定的,不一定是1081,要注意修改
  • 对于git的代理设置,个人倾向于终端设置,其他的可以设置为临时设置的情况,防止代理失效,无法上网的情况存在