git-proxy


由于 GitHub 最近又被墙了,导致我在使用时遇到了诸多不便,在网上找了一些办法,彻底解决了 git 代理的问题,使得 https 和 ssh 这两种方式的 git clone 都能够走代理服务。

Git 配置代理

本文介绍了如何配置执行 git clone 命令时的 http/https 代理,以及 ssh 代理。

以下配置过程以 ubuntu 为例,并假设代理地址为 10.0.2.2,端口为 4781 。

https 代理

设置代理:

#使用socks5代理(推荐)
git config --global http.https://github.com.proxy socks5://10.0.2.2:4781
#使用http代理(不推荐)
git config --global http.https://github.com.proxy http://10.0.2.2:4781

取消代理:

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

ssh 代理

需要提前在 Github 上设置 ssh 公钥,可参考:在github上添加SSH key

然后安装 connect-proxy 工具,

sudo apt install connect-proxy

打开 ~/.ssh/config 文件,若没有就新建一个,输入下述内容,其中代理地址,端口,ssh 私钥位置需要替换。

ProxyCommand nc -v -x <代理地址:端口,例如 10.0.2.2:4781> %h %p

Host github.com
  User git
  Port 22
  Hostname github.com
  IdentityFile "<ssh私钥位置,例如 /home/jackis/.ssh/id_rsa>"
  TCPKeepAlive yes

Host ssh.github.com
  User git
  Port 443
  Hostname ssh.github.com
  IdentityFile "<ssh私钥位置,例如 /home/jackis/.ssh/id_rsa>"
  TCPKeepAlive yes

保存后文件后测试方法如下,返回successful之类的就成功了。

# 测试是否设置成功
ssh -vT git@github.com

VirtualBox 虚拟机如何使用宿主机代理

有时候在 VirtualBox 虚拟机里开发,也需要使用代理访问 Github 等网站,如何利用宿主机的代理呢?

首先配置虚拟机的网络模式为 NAT 或桥接模式,输入 ip route show 命令找到路由节点,一般默认为 10.0.2.2,

jackis@jackis:~$ ip route show
default via 10.0.2.2 dev enp0s3 proto dhcp metric 100

然后查找宿主机的代理端口,查找方式根据代理软件的不同而不同,我就不详说了。我这里 sockets 代理端口为 4781。

之后就可以按照上述教程配置 git 代理了。


参考:


文章作者: Jackistang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jackistang !
  目录