一.使用SSH代理
本次碰到的问题是我的阿里云服务器想通过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地址

确认解析成功,大功告成
Comments NOTHING