PowerShell
1. 在 PowerShell
窗口中运行如下指令
1 2
| if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force } notepad $PROFILE
|
2. 在打开的记事本中添加如下代码
注意修改第九行代理地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| if ($env:HTTP_PROXY -ne $null){ Write-Output "Proxy Enabled as $env:HTTP_PROXY"; }
Function SetProxy() { Param( $Addr = 'http://127.0.0.1:19810', [switch]$ApplyToSystem )
$env:HTTP_PROXY = $Addr; $env:HTTPS_PROXY = $Addr; $env:http_proxy = $Addr; $env:https_proxy = $Addr;
[Net.WebRequest]::DefaultWebProxy = New-Object Net.WebProxy $Addr; if ($ApplyToSystem) { $matchedResult = ValidHttpProxyFormat $Addr; if (-not ($matchedResult -eq $null)) { SetSystemProxy $matchedResult.1; } } Write-Output "Successful set proxy as $Addr"; } Function ClearProxy() { Param( $Addr = $null, [switch]$ApplyToSystem )
$env:HTTP_PROXY = $Addr; $env:HTTPS_PROXY = $Addr; $env:http_proxy = $Addr; $env:https_proxy = $Addr;
[Net.WebRequest]::DefaultWebProxy = New-Object Net.WebProxy; if ($ApplyToSystem) { SetSystemProxy $null; } Write-Output "Successful unset all proxy variable";
} Function SetSystemProxy($Addr = $null) { Write-Output $Addr $proxyReg = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings";
if ($Addr -eq $null) { Set-ItemProperty -Path $proxyReg -Name ProxyEnable -Value 0; return; } Set-ItemProperty -Path $proxyReg -Name ProxyServer -Value $Addr; Set-ItemProperty -Path $proxyReg -Name ProxyEnable -Value 1; } Function ValidHttpProxyFormat ($Addr) { $regex = "(?:https?:\/\/)(\w+(?:.\w+)*(?::\d+)?)"; $result = $Addr -match $regex; if ($result -eq $false) { throw [System.ArgumentException]"The input $Addr is not a valid HTTP proxy URI."; }
return $Matches; } Set-Alias set-proxy SetProxy Set-Alias clear-proxy ClearProxy
|
3. 保存,重新打开PowerShell
设置当前窗口代理 :set-proxy
设置当前窗口代理 + 系统代理:set-proxy -ApplyToSystem
取消当前窗口代理:clear-proxy
取消当前窗口代理 + 系统代理:clear-proxy -ApplyToSystem
set-proxy
和SetProxy
,clear-proxy
和ClearProxy
可以互相替换
CMD
设置代理,窗口关闭后失效
1 2
| set http_proxy=http://127.0.0.1:19810 set https_proxy=http://127.0.0.1:19810
|
Git
设置Http代理,永久生效
1 2
| git config --global https.proxy https://127.0.0.1:19810 git config --global http.proxy http://127.0.0.1:19810
|
取消代理
1 2
| git config --global --unset http.proxy git config --global --unset https.proxy
|