Git配置HTTP和SSH代理
配置Git代理的方式,具体取决于你使用的是 HTTP 代理、HTTPS 代理还是 SOCKS 代理。下面是不同方式的配置步骤:
1. 配置全局代理
你可以通过配置 Git 的全局代理来使 git clone
和 git push
都使用代理。以下是几种不同类型代理的配置方法:
1.1 HTTP/HTTPS 代理
1 | git config --global http.proxy http://proxyuser:proxypassword@proxy.server.com:port |
如果你的代理不需要用户名和密码,则可以省略 proxyuser:proxypassword@
这一部分。例如:
1 | git config --global http.proxy http://proxy.server.com:port |
1.2 SOCKS 代理
如果你使用的是 SOCKS 代理(如 Shadowsocks 或其他 SOCKS5 代理),你可以配置如下:
1 | git config --global http.proxy socks5://proxyuser:proxypassword@proxy.server.com:port |
同样,如果代理不需要认证:
1 | git config --global http.proxy socks5://proxy.server.com:port |
2. 为单个仓库配置代理
如果你只想为特定的仓库配置代理,你可以在该仓库的目录下运行以下命令:
1 | git config http.proxy http://proxyuser:proxypassword@proxy.server.com:port |
3. 移除代理配置
如果你不再需要使用代理,可以使用以下命令移除全局代理配置:
1 | git config --global --unset http.proxy |
如果是为单个仓库配置的代理,可以在该仓库目录下运行:
1 | git config --unset http.proxy |
4. 使用环境变量配置代理
你也可以通过设置环境变量来配置代理,这种方法无需在 Git 配置中显式指定:
1 | export http_proxy=http://proxyuser:proxypassword@proxy.server.com:port |
5. 通过 SSH 使用代理(仅适用于 SSH 代理)
上述代理只适用于 HTTPS 仓库,如果需要连接 SSH 仓库,通常需要配置 SSH 客户端(如 ssh
)来使用代理。在 ~/.ssh/config
文件中添加以下内容:
1 | Host github.com |
这里 proxy.server.com
是你的代理服务器地址,port
是端口号。nc
是 netcat
,用于建立代理连接。
像我的 Debian12
系统中国呢的 netcat
并不含有 -x
的参数(如下所示),所以我们需要使用另外的工具。
1 | $ nc -h |
根据你提供的 nc
选项说明,你使用的 Netcat 版本(v1.10-47)不支持 -x
选项,这个版本的 Netcat 没有直接支持 HTTP 代理的功能。你可以使用以下几种方法来调整你的 ProxyCommand
配置:
6. 使用 connect-proxy
工具
通过以下命令安装 connect-proxy
:
1 | sudo apt-get install connect-proxy |
然后将你的 .ssh/config
文件修改为:
1 | Host github.com |
这里,proxy.server.com:port
是你的 HTTP 代理服务器的地址和端口。
7. 使用 corkscrew
工具
使用 corkscrew
工具。命令安装 corkscrew
:
1 | sudo apt-get install corkscrew |
然后在 .ssh/config
文件中使用:
1 | Host github.com |
这同样要求你替换 proxy.server.com:port
为你的代理服务器的实际地址和端口。