搜索
查看: 1747|: 0

Ubuntu Linux下通过代理(proxy)使用git上github.com

[复制链接]

167

主题

4

回帖

573

积分

管理员

积分
573
发表于 2014-8-15 15:10:55 | 显示全部楼层 |阅读模式

github.com,作为程序员的代码仓库,我们经常会用到。但有时候我们不能直接通过网络链接它,只能通过代理。

这里我有一台代理服务器,起初我以为在终端设置了代理环境就行了,其设置为在你的~/.bashrc里增加以下几行:


[python] view plaincopyprint?

  • export http_proxy="http://proxy-server:3128/"
  • export https_proxy="http://proxy-server:3128/"
  • export ftp_proxy="http://proxy-server:3128/"


设置好以后,使用以下命令使其启动

[python] view plaincopyprint?

  • source ~/.bashrc


然后测试wget是没有问题的,如下:

但使用git clone就不行


[python] view plaincopyprint?


通过这两篇文章知道了原因:在windows上通过代理访问github.comUsing git over proxy

配制过程分为以下几步:

1. 安装socat,在ubuntu下使用以下命令安装


[python] view plaincopyprint?

  • sudo apt-get install socat


2. 编辑一个脚本文件,名字为git-proxy ,内容如下

[python] view plaincopyprint?

  • #!/bin/sh
  • # Use socat to proxy git through an HTTP CONNECT firewall.
  • # Useful if you are trying to clone git:// from inside a company.
  • # Requires that the proxy allows CONNECT to port 9418.
  • #
  • # Save this file as gitproxy somewhere in your path
  • # (e.g., ~/bin) and then run
  • # chmod +x git-proxy
  • # git config --global core.gitproxy git-proxy
  • #
  • #
  • # Configuration. Common proxy ports are 3128, 8123, 8000.
  • _proxy=proxy-server
  • _proxyport=3128
  • exec socat STDIO PROXY_proxy12,proxyport=$_proxyport


3. 将git-proxy放到一个目录下,如我将它放到/home/lisp/local/bin,并将该目录加入到PATH

[python] view plaincopyprint?

  • cp git-proxy /home/lisp/local/bin/

将该目录加入到PATH,加入以下内容到~/.bashrc,然后souce ~/.bashrc

[python] view plaincopyprint?

  • export PATH=$PATH:/home/lisp/local/bin


[python] view plaincopyprint?

  • source ~/.bashrc



4. 修改~/.gitconfig,加入以下行和代理
[python] view plaincopyprint?

  • gitproxy = git-proxy

我.gitconfig文件内容如下:

[python] view plaincopyprint?

  • [push]
  •     default = simple
  • [user]
  •     name = aborn
  •     email = loveaborn@foxmail.com
  • [core]
  •     editor = emacs
  •     gitproxy = git-proxy
  • [https]
  •     proxy = http://proxy-server:3128
  • [http]
  •     proxy = http://proxy-server:3128



5. 下载转换协议文件connect.c,下载地址点击

只要下载connect.c文件即可,然后编译


[python] view plaincopyprint?

  • gcc -o connect connect.c


将编译后的文件connect也拷贝到/home/lisp/local/bin下

6. 修改~/.ssh/config,加入以下行


[python] view plaincopyprint?

  • ProxyCommand /home/lisp/local/bin/connect -H proxy-server:3128 %h %p


我的~/.ssh/config文件内容如下:

[python] view plaincopyprint?

  • ProxyCommand /home/lisp/local/bin/connect -H proxy-server:3128 %h %p
  • Host github.com
  • User loveaborn@foxmail.com
  • Port 443
  • Hostname ssh.github.com


注意这里的connect文件目录与第5步放置的目录一致。

以上步骤完成后,就行了,如下截图:


[python] view plaincopyprint?




[python] view plaincopyprint?

  • git push



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-12-24 02:36 , Processed in 0.111515 second(s), 25 queries .

快速回复 返回顶部 返回列表