GIT设置Socks或者HTTP代理访问内网GIT服务器

992 阅读1分钟

源起

当你在以下情况下,本文可能对你访问git有用

  • 在某个的神秘局域网内
  • 在外出差,需要访问公司内网

检查环境,先确认是不是已经有代理了

执行git config 检查当前环境

git config --list

笔者电脑上显示

credential.helper=osxkeychain
user.name=Philip Zhang
user.email=zhangxilai@doublechaintech.com
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
core.editor=vi
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true

OK,里面没有发现有代理http_proxy, 我们需要启动一个代理,最简单的方式是使用SSH, 在Windows系统下面也可以使用putty, 我们在本机1080端口设置一个代理

设置一个代理服务器

Mac/Linux下

ssh -f -N -D 127.0.0.1:1080 ubuntu@<remoteip>

Windows下

参考 http://securitymusings.com/article/462/how-to-set-up-a-socks-proxy-using-putty-ssh

在git下使用这个代理

git config --global http.proxy socks5://127.0.0.1:1080 

验证是否设置成功

git config --list 

得到

...
http.proxy=socks5://127.0.0.1:1080
...

设置成功

测试

使用正常命令如 git clone, git pull 等来测试效果