Skip to content

为 git 和 ssh 设置 socks5 协议的代理

362 字约 1 分钟

2024-12-01

由于某魔法结界的存在,我们在从某全球最大同性社交网站下载项目源码或者提交代码到该罪恶的社交网站时, 经常会出现各种异常。那么,我们能不能施展魔法,让我们的 git/ssh 通过魔法上网呢?

(本文的配置并不是给浏览器用的,不适合用来给浏览器魔法上网。本文重点在 git/ssh,需要魔法上网的请绕道。)

一、HTTP 形式

走 HTTP 代理

git config --global http.proxy "http://127.0.0.1:8080"
git config --global https.proxy "http://127.0.0.1:8080"

走 socks5 代理(如 Shadowsocks)

git config --global http.proxy "socks5://127.0.0.1:1080"
git config --global https.proxy "socks5://127.0.0.1:1080"

取消设置

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

二、SSH 形式

修改 ~/.ssh/config 文件(不存在则新建):

此设置需要connect命令,最新版下载地址:connect-1.104-win32-msvc.zip,更多关于connect的信息可访问 https://bitbucket.org/gotoh/connect/wiki/Home 。Windows下可将下载下来的压缩包中的connect.exe放到git安装目录下的bin文件夹下(或者其他环境变量路径下)。linux下需要自行编译并添加环境变量。

必须是 *.github.com

socks

Host *.github.com
	ProxyCommand connect -S 127.0.0.1:1080 -5 %h %p # -S为socks
	HostName %h
	Port 22
	User git
	IdentityFile  ~/.ssh/id_rsa 
	IdentitiesOnly yes

HTTP

Host *.github.com
	ProxyCommand connect -H 127.0.0.1:1080 %h %p # -H为http
	HostName %h
	Port 22
	User git
	IdentityFile  ~/.ssh/id_rsa 
	IdentitiesOnly yes