在没有图形界面的机器上给github配置代理的方法
1 引言
近期遇到了一个棘手的问题,我使用的云服务器无法直接连接到 GitHub,使得我无法下载任何开源项目,包括之前维护的代码和下载新的项目。面对这种困扰,我选择了配置代理的方式来解决问题。然而,我很快发现,在一个没有图形用户界面(GUI)的服务器上配置代理,支持 SSH 和 HTTP 两种方式,这个过程比我预想的要复杂很多。
这个问题可能会影响到很多人,我决定写一篇详细的文章,介绍在 Linux 环境下如何配置和使用网络代理连接 github。下文将详细介绍如何使用环境变量来设置代理,如何在 Git 中配置代理,以及一些常用的代理调试工具。
2 配置代理
1 | export http_proxy=http://host:port/ |
3 git 设置 http 代理
最常用的访问 git 的方式是 http 方式,形如:
1 | git clone https://github.com/xxx/yyy/ |
在这种情况下,正常连接需要设置 http proxy。
3.1 设置
1 | git config --global http.proxy http://host:port |
3.2 查看当前配置
1 | git config --global -l |
3.3 取消代理
1 | git config --global --unset http.proxy |
4 设置 ssh 代理
我们也常常使用 ssh 方式操作 gihub 项目,形如:
1 | git clone git@github.com:xxx/yyy.git |
这种方式使用 ssh 与 github 建立连接,无法使用 http proxy 设置,具体设置方法如下:
1 | vi ~/.ssh/config |
(注意:这里的 host:port 不是 http 代理,是 socks 代理)
测试 nc 命令是否正常
1 | nc -x host:port github.com 22 |
测试 git 的 ssh 方式是否正常
1 | ssh -T git@github.com |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.