一些常用的代理设置方式,记录备用。
桌面端还在用其他代理软件的新手,强烈建议将其换成 Clash for Windows 并启用 TUN 模式 。那么,下面的内容除了 Git over SSH 都不用考虑了,避免浪费时间作无意义的折腾。
CMD 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=
PowerShell 1 2 $env:http_proxy ="127.0.0.1:1080" $env:https_proxy ="127.0.0.1:1080"
为了方便,将下面函数添加到 $PROFILE
中就可以通过 proxy 和 unproxy 来实现设置与取消代理了。
1 2 3 4 5 6 7 8 9 10 11 12 13 function proxy { param ( $ssr = "127.0.0.1:1080" ) New-Item -Path Env: -Name http_proxy -Value $ssr New-Item -Path Env: -Name https_proxy -Value $ssr } function unproxy { Remove-Item -Path Env:\http_proxy Remove-Item -Path Env:\https_proxy }
Git Bash 1 2 3 4 5 export http_proxy=http://127.0.0.1:1080export https_proxy=http://127.0.0.1:1080unset http_proxy https_proxy
All APPs 1 2 3 4 # 设置 netsh winhttp import proxy source=ie # 取消 netsh winhttp reset proxy
为 Git 设置代理 Git over 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
Git over SSH 需要修改 ~/.ssh/config
文件
如果仅为 GitHub 设置代理,且使用 socks5 代理的话
1 2 3 4 5 6 Host github.com HostName github.com # Port 22 User git IdentityFile ~/.ssh/git_ed25519 ProxyCommand connect -S 127.0.0.1:1080 -a none %h %p
如果 22 端口禁止访问,报 kex_exchange_identification: Connection closed by remote host
错误时,替换为
1 2 3 4 5 6 Host github.com HostName ssh.github.com Port 443 User git IdentityFile ~/.ssh/git_ed25519 ProxyCommand connect -S 127.0.0.1:1080 -a none %h %p
这里 -S
表示使用 socks5 代理,如果是 http 代理则为 -H
。connect 工具 Git for Windows 自带。
我自己的话,则是设置成这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Host github.com HostName ssh.github.com Port 443 User git IdentityFile ~/.ssh/git_ed25519 ProxyCommand connect -S 127.0.0.1:1080 -a none %h %p Host github.com HostName github.com # Port 22 User git IdentityFile ~/.ssh/git_ed25519 ProxyCommand connect -S 127.0.0.1:1080 -a none %h %p Host * # PreferredAuthentications publickey ServerAliveInterval 30 TCPKeepAlive yes
来源:laispace/git 设置和取消代理