【Git】Git代理配置HTTP & HTTPS & SSH(SSH代理出现 kex_exchange_identification Connection closed by remote host 解决方案)
✨Git HTTP & HTTPS 代理配置
# http & https
git config --global http.proxy 127.0.0.1:7890
git config --global https.proxy 127.0.0.1:7890
# socks5
git config --global http.proxy socks5://127.0.0.1:7890
git config --global https.proxy socks5://127.0.0.1:7890
# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
✨Git配置多个SSH-Key
可参考
https://www.cnblogs.com/Flat-White/p/17065331.html
✨Git SSH 代理配置
macOS
以GitHub为例
使用如下命令行修改SSH配置
vim ~/.ssh/config
尝试修改配置如下
# GitHub
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
ProxyCommand nc -X connect -x 127.0.0.1:7890 %h %p
测试回显如下
➜ ~ ssh -T git@github.com
kex_exchange_identification: Connection closed by remote host
Connection closed by UNKNOWN port 65535
出现报错kex_exchange_identification: Connection closed by remote host
可以使用 SSH over HTTPS 解决
macOS系统自带 nc 工具
修改配置如下 使用nc + http代理
# GitHub
Host github.com
HostName ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
User git
Port 443
ProxyCommand nc -X connect -x 127.0.0.1:7890 %h %p
或者修改配置如下 使用nc + socks5代理
# GitHub
Host github.com
HostName ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
User git
Port 443
ProxyCommand nc -X 5 -x 127.0.0.1:7890 %h %p
或者可以使用 connect 工具
使用brew安装
brew install connect
修改配置如下 使用connect + http代理
# GitHub
Host github.com
HostName ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
User git
Port 443
ProxyCommand connect -H 127.0.0.1:7890 %h %p %h %p
或者修改配置如下 使用connect + socks5代理
# GitHub
Host github.com
HostName ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
User git
Port 443
ProxyCommand connect -S 127.0.0.1:7890 %h %p %h %p
Windows
Windows系统并没有自带nc工具
可以安装nmap并添加安装目录到 PATH 中
或者既然能在Windows使用Git那么就已经安装了Git for Windows
其自带的 Git Bash 已包含 connect 工具,默认路径为:
C:\Program Files\Git\mingw64\bin\connect.exe
我把Git装在D盘 所以需要添加以下目录到 PATH 中
D:\Program Files\Git\mingw64\bin
修改配置如下 使用connect + http代理
# GitHub
Host github.com
HostName ssh.github.com
PreferredAuthentications publickey
IdentityFile C:\Users\${UserName}\.ssh\github_id_rsa
User git
Port 443
ProxyCommand connect -H 127.0.0.1:7890 %h %p
或者修改配置如下 使用connect + socks5代理
# GitHub
Host github.com
HostName ssh.github.com
PreferredAuthentications publickey
IdentityFile C:\Users\${UserName}\.ssh\github_id_rsa
User git
Port 443
ProxyCommand connect -S 127.0.0.1:7890 %h %p
✨SSH over HTTPS
SSH over HTTPS 是一种通过 HTTPS 端口(443)传输 SSH 流量的技术,主要用于绕过网络限制(如防火墙封锁了默认的 SSH 端口 22)。
- 什么是 SSH over HTTPS?
- 常规 SSH 连接:使用
22端口,容易被防火墙检测并拦截。 - SSH over HTTPS:将 SSH 流量伪装成 HTTPS 流量,通过
443端口传输(因为 HTTPS 流量通常不会被封锁)。
- 为什么需要它?
- 突破公司/学校网络对 SSH 的封锁
- 在限制严格的网络环境(如机场、酒店)中使用 SSH
- 解决
kex_exchange_identification: Connection closed by remote host等连接错误
✨HTTP & SOCKS5 代理区别
- 协议层与工作原理
| 特性 | HTTP 代理 | SOCKS5 代理 |
|---|---|---|
| 协议层 | 应用层(HTTP/HTTPS) | 传输层(TCP/UDP) |
| 工作方式 | 只能代理 HTTP/HTTPS 流量 | 可代理任意流量(SSH、FTP、游戏等) |
| 身份认证 | 支持 Basic/PASV 认证 | 支持用户名/密码认证 |
| 加密 | 依赖 HTTPS 加密 | 本身不加密,但可配合 TLS(如 SOCKS5 over TLS) |
- 功能对比
HTTP 代理的特点:
- 仅处理 Web 流量:
适用于浏览器、curl、git clone https://等 HTTP(S) 请求。 - 能解析 HTTP 头部:
可以修改、过滤或缓存 HTTP 请求(如公司代理过滤网页内容)。 - 不支持非 HTTP 协议:
无法代理 SSH、RDP、游戏等非 HTTP 流量。
SOCKS5 代理的特点:
- 全协议支持:
可代理 任意 TCP/UDP 流量(如 SSH、BitTorrent、游戏连接)。 - 无协议解析:
直接转发原始数据包,不修改内容,隐私性更好。 - 支持 UDP:
适用于 VoIP、视频流等 UDP 应用(HTTP 代理仅支持 TCP)。
- 性能与隐私
| 维度 | HTTP 代理 | SOCKS5 代理 |
|---|---|---|
| 速度 | 较慢(需解析 HTTP 头部) | 更快(直接转发原始数据) |
| 隐私性 | 代理服务器能看到 HTTP 请求内容 | 仅知道连接目标,不解析内容 |
| 兼容性 | 仅限 HTTP 工具(如浏览器) | 几乎所有网络工具均支持 |
- 典型应用场景
HTTP 代理适合:
- 网页浏览(Chrome/Firefox)
- 下载文件(
wget、curl) - Git 的 HTTPS 协议(
git clone https://...)
SOCKS5 代理适合:
- SSH 连接(
git clone git@...) - 远程桌面(RDP/VNC)
- 游戏联机(如 Steam)
- P2P 下载(BitTorrent)
- 绕过网络审查(全局代理)
- 如何选择?
- 用 HTTP 代理如果:
你只需要浏览网页或访问 HTTP(S) 服务。 - 用 SOCKS5 代理如果:
你需要代理 SSH、游戏、UDP 等非 HTTP 流量,或追求更高隐私性。
⭐转载请注明出处
本文作者:双份浓缩馥芮白
原文链接:https://www.cnblogs.com/Flat-White/p/18867411
版权所有,如需转载请注明出处。

浙公网安备 33010602011771号