本文主要介绍git proxy
简明用法,以便解决在部分linux
环境下git@github.com
或github.com
无法访问的问题。
一、背景
由于特殊原因,所在网络不能访问github.com
、google.com
等网站,而需要通过ssh
协议,向github提交代码时,被阻断。
本文将介绍比较简便的方式实现github代码提交。
访问github仓库一般有以下两种常用方式:
# https方式,仅支持pull
git clone https://github.com/gnzhoutian/gnzhoutian.github.io.git
# ssh方式,允许pull/push,需要在githubweb端配置本地ssh公钥
git clone git@github.com:gnzhoutian/gnzhoutian.github.io.git
二、ssh方式
- 前提是
ssh.github.com
可以ping
通,目前我只尝试了一种方式,其它方式尚未研究。
ping ssh.github.com
- 安装nc工具
apt install ncat # for debian系
yum install nc # for redhat系
- 配置ssh config
# 127.0.0.1:888 是任意端口,似乎只是用于启动本地任意一个端口
cat ~/.ssh/config <<'EOF'
Host github.com
Hostname ssh.github.com
Port 443
User git
ProxyCommand nc -v %h %p
EOF
- 测试网络是否联通
ssh -T git@github.com
三、https方式
- 前提是已有科学上网方式,目前一般通过
v2ray
方式,基于Shadowsocks
或Vmess
协议。
# 命令行环境使用。Project V 是一套网络工具,它可保护您的网络连接,从而保护您的隐私。
https://github.com/v2fly/v2ray-core
# 桌面环境使用。适用于 Windows、Linux 和 macOS 的 GUI 客户端
https://github.com/2dust/v2rayN
-
在桌面环境先使用
v2rayN
配置科学上网成功,软件目录会自动生成一份可用的config.json
文件 -
在命令行环境中替换为生成的
config.json
文件 -
启动v2ray
./v2ray run -config ./config.json
- 系统环境配置代理
# 端口8888 与 config.json中配置的sock协议端口一致即可
export http_proxy=socks://127.0.0.1:8888
export https_proxy=socks://127.0.0.1:8888
- 测试网络是否联通
curl https://www.google.com
- 作为服务安装。未实操,仅供参考
# 官方提供的命令行服务安装脚本
https://github.com/v2fly/fhs-install-v2ray