0%

常用设置及一些镜像站

代理设置

Terminal

1
2
3
4
5
6
# 设置
set http_proxy=http://127.0.0.1:1080
set https_proxy=http://127.0.0.1:1080
# 取消
set http_proxy=
set https_proxy=

All APPs

1
2
3
4
# 设置
netsh winhttp import proxy source=ie
# 取消
netsh winhttp reset proxy

Git proxy

众所周知,git clone 有两种方式,代理设置方式也不一样:

  • Clone with HTTPS

设置代理:

1
2
3
4
# 如果是 socks5 代理的话
git config --global http.proxy socks5h://127.0.0.1:1080
# http 代理仅需将 socks5h 改为 http
git config --global http.proxy http://127.0.0.1:1080

取消代理:

1
git config --global --unset http.proxy

也可以仅为 GitHub 设置代理

1
git config --global http.https://github.com.proxy socks5h://127.0.0.1:1080

socks5h 和 socks5 的区别:

In a proxy string, socks5h:// and socks4a:// mean that the hostname is resolved by the SOCKS server. socks5:// and socks4:// mean that the hostname is resolved locally. socks4a:// means to use SOCKS4a, which is an extension of SOCKS4.

来源: Differentiate socks5h from socks5 and socks4a from socks4 when handling proxy string

  • Clone with SSH

需要修改 ~/.ssh/config 文件

如果仅为 GitHub 设置代理,且使用 socks5 代理的话

1
2
3
Host github.com
User git
ProxyCommand connect -S 127.0.0.1:1080 %h %p

这里 -S 表示使用 socks5 代理,如果是 http 代理则为 -H。connect 工具 git 自带。

我自己的话,则是设置成这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Reference: https://bitbucket.org/gotoh/connect/wiki/Home

Host github.com
User git
Hostname github.com
Port 22
ProxyCommand connect -S 127.0.0.1:1080 -a none %h %p

Host ssh.github.com
User git
Hostname ssh.github.com
Port 443
ProxyCommand connect -S 127.0.0.1:1080 -a none %h %p

Host *
IdentityFile "C:\Users\Zheng\.ssh\id_rsa"
ServerAliveInterval 30
TCPKeepAlive yes

来源: laispace/git 设置和取消代理

PowerShell alias

1
2
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
code $PROFILE
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
# Set-Proxy command
Function SetProxy() {
Param(
$Addr = $null,
[switch]$ApplyToSystem
)

$env:HTTP_PROXY = $Addr;
$env:HTTPS_PROXY = $Addr;
$env:http_proxy = $Addr;
$env:https_proxy = $Addr;

if ($addr -eq $null) {
[Net.WebRequest]::DefaultWebProxy = New-Object Net.WebProxy;
if ($ApplyToSystem) { SetSystemProxy $null; }
Write-Output "Successful unset all proxy variable";
}
else {
[Net.WebRequest]::DefaultWebProxy = New-Object Net.WebProxy $Addr;
if ($ApplyToSystem) {
$matchedResult = ValidHttpProxyFormat $Addr;
# Matched result: [URL Without Protocol][Input String]
if (-not ($matchedResult -eq $null)) {
SetSystemProxy $matchedResult.1;
}
}
Write-Output "Successful set proxy as $Addr";
}
}
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-proxy 'http://your-proxy:port'

设置当前窗口代理 + 系统代理:set-proxy 'http://your-proxy:port' -ApplyToSystem

取消当前窗口代理:set-proxy (没有参数)

取消当前窗口代理 + 系统代理:set-proxy -ApplyToSystem

注意: 通过环境变量也就是不加 -ApplyToSystem 的方式设置代理时,代理仅在当前窗口生效。增加 -ApplyToSystem 后系统代理的作用域为整个系统而非当前窗口,需要手动取消,但环境变量仍然只在当前窗口生效。

来源: 使用 PowerShell Profile 快速设置 HTTP 代理

pypi

镜像站 帮助页 是否在用
清华 pypi 镜像使用帮助
阿里云 使用帮助
网易 使用帮助
腾讯 使用帮助

NPM

镜像站 帮助页 是否在用
淘宝 首页
腾讯 使用帮助

Anaconda

镜像站 帮助页 是否在用
清华 使用帮助

MSYS2

镜像站 帮助页 是否在用
清华 使用帮助
中科大 使用帮助

RubyGems

镜像站 帮助页 是否在用
Ruby China 社区 首页
清华 使用帮助
阿里云 使用帮助
中科大 使用帮助

Go

镜像站 帮助页 是否在用
腾讯 使用帮助
阿里云 使用帮助

CTAN

镜像站 帮助页 是否在用
清华 使用帮助

Docker CE

镜像站 帮助页 是否在用
清华 使用帮助
中科大 使用帮助