解决阿里云git pull慢的问题

最后更新于 2021-10-09 1315 次阅读


一.使用SSH代理

本次碰到的问题是我的阿里云服务器想通过git pull拉取更新,但是出现超时拉取失败的情况

git pull失败

失败原因代码:fatal: unable to access 'https://github.com/Arondight/Adachi-BOT.git/': Encountered end of file

而通过百度的查询,从这篇文章中http://www.coolpython.net/informal_essay/21-03/ali-server-git.html找到了解决方法

核心解决办法就是:为git配置ssh代理

1.拥有一台境外的VPS

2.在阿里云的服务器上生成ssh key

ssh-keygen -t rsa -C "your mail"

一路回车,在~/.ssh 目录下会生成id_rsa.pub 文件

3.为GitHub添加SSH Key,就用id_rsa.pub里的内容

这个暂时我不需要,这个是后续我要在github上托管我的源码时才需要

4.让阿里云服务器能ssh境外vps

ssh-copy-id -i .ssh/id_rsa.pub root@境外vps的ip

5.阿里云和境外vps都安装nc

yum install nc -y

6.创建config文件

创建~/.ssh/config文件

ch ~/.ssh/config

vim ~/.ssh/config

输入:

Host github.com ProxyCommand ssh root@境外服务器ip nc %h %p

git clone 的时候,一定要选ssh的地址,类似于git@github.com:kwsy/yourproject.git,这个在github页面上点击clone按钮时,是可以选择的。

二.使用v2rayA等代理软件

既然git clone和git pull都是使用应用层的https协议,我们就可以考虑一下是能不能通过走http代理或者socket代理的方法来解决这个问题了?

1.vps搭建代理服务

这里就不做详细介绍了

2.阿里云安装v2rayA客户端

v2rayA的项目地址为:https://github.com/v2rayA/v2rayA/wiki/Home_zh

在这里,我们使用docker的方式来进行搭建v2ray的搭建。

既然是用docker,那我们首先就要先安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable docker
systemctl start docker

然后查看一下docker的开启情况

systemctl status docker`

确认docker 【running】和【enable】后,我们开始安装v2rayA

docker run -d \
	--restart=always \
	--privileged \
	--network=host \
	--name v2raya \
	-e V2RAYA_ADDRESS=0.0.0.0:2017 \
        -v /lib/modules:/lib/modules \
	-v /etc/resolv.conf:/etc/resolv.conf \
	-v /etc/v2raya:/etc/v2raya \
	mzz2017/v2raya

安装完成后,我们可以查看一下是否安装成功

docker ps -la

接着我们进入web界面进行设置

web界面地址为:www.jiale.wisky.top:2017

添加节点,这里由于我不知道docker环境下怎么使用xray内核,所以我们使用trojan协议来进行代理

节点添加完成后,右上角设置代理模式,然后对服务器进行测试,看看能否成功代理

curl -v google.com

当显示这个结果时则表示代理成功

三.更改Host文件

一般国内无法连上github多数是dns服务器解析的IP地址国内没法访问,所以我们这里的思路就可以变为:查询国内能够访问的github的IP地址,然后更改系统的host文件,直接指定可以连上服务器的IP就好。

1.寻找可以连上github的IP地址

使用这个网站https://fastly.net.ipaddress.com/来查询国内可以连上github的IP

这里我们查询www.github.com

这里通过查询,我们得到的ip是140.82.112.4,所以我们就可以修改host文件,把github的ip直接指定为这个ip,来实现我们的访问

2.修改/etc/hosts文件

vim /etc/hosts

然后添加:140.82.112.4 github.com

然后:wq进行保存,重启网络连接

/etc/init.d/network restart

然后ping www.github.com看看是不是解析的我们设置的IP地址

确认解析成功,大功告成