由于国内对github的访问是间歇式的,许多公司研发因为搞不定墙就求助于IT,但实际上IT不理解研发的需求,会把一个简单的问题搞复杂化。事实上,我们只需要自行配置git代理就可以解决github访问不畅的问题。总的来说,你仍需要一个境外的vps作为代理服务器,可以是你公司内网在境外的任一台机器,或是自行申请一个免费的AWS的云服务器等。
常用代理服务器软件:
1. sshuttle
sshuttle 是一个使用简单的轻量级命令行全局代理工具,用-x排除不需要走代理的网段,比如本地局域网,远程服务器等,一个命令即可搞定。
sshuttle --dns -r username@server_ipaddress:port -x 192.168.1.0/24 -x server_ipaddress -D
上面命令相当于将所有流量都走远程服务器。
2. clash
Clash是一款用Go开发的支持Linux/MacOS/Windows等多平台的代理工具。 在linux下载并使用:
wget https://github.com/Dreamacro/clash/releases/download/v1.8.0/clash-linux-amd64-v1.8.0.gz gzip -d clash-linux-amd64-v1.8.0.gz chmod +x clash-linux-amd64-v1.8.0.gz ./clash-linux-amd64-v1.8.0
这样,一台代理服务器就运行着了,默认监听在7890端口。
不过,此时代理仅监听本地地址,如果这是一台位于公网或内网的服务器,需要开放监听网卡的IP地址才可以为其它计算机提供代理服务。默认地,配置文件在~/.config/clash/config.yaml,我们仅需添加allow-lan: true就可以使用,如果你的代理服务器位于公网,还可以把用户名和密码也设置一下,以防止滥用。
修改如下:
mixed-port: 7890 mixed-port: 7890 allow-lan: true bind-address: '*' #mode: direct ipv6: false authentication: - "user1:pass1" - "user2:pass2" external-controller: 127.0.0.1:9090 secret: "23456"
使用git代理时,配置为:
git config --global http.proxy socks5://user1:pass1@proxy-ip:7890
相应地,取消代理也只要一句话:
git config --global --unset http.proxy
在代理服务器上打开:http://clash.razord.top/#/settings ,通过web来配置或查看。