linux 下 git gem 等代理设置问题

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

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

[python] view plaincopy

  1. export http_proxy="http://proxy-server:3128/"
  2. export https_proxy="http://proxy-server:3128/"
  3. export ftp_proxy="http://proxy-server:3128/"

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

[python] view plaincopy

  1. source ~/.bashrc

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

但使用git clone就不行

[python] view plaincopy

  1. git clone [email protected]:aborn/ulitcs.git

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

配制过程分为以下几步:

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

[python] view plaincopy

  1. sudo apt-get install socat

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

[python] view plaincopy

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

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

[python] view plaincopy

  1. cp git-proxy /home/lisp/local/bin/

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

[python] view plaincopy

  1. export PATH=$PATH:/home/lisp/local/bin

[python] view plaincopy

  1. source ~/.bashrc

4. 修改~/.gitconfig,加入以下行和代理

[python] view plaincopy

  1. gitproxy = git-proxy

我.gitconfig文件内容如下:

[python] view plaincopy

  1. [push]
  2. default = simple
  3. [user]
  4. name = aborn
  5. email = [email protected]
  6. [core]
  7. editor = emacs
  8. gitproxy = git-proxy
  9. [https]
  10. proxy = http://proxy-server:3128
  11. [http]
  12. proxy = http://proxy-server:3128

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

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

[python] view plaincopy

  1. gcc -o connect connect.c

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

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

[python] view plaincopy

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

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

[python] view plaincopy

  1. ProxyCommand /home/lisp/local/bin/connect -H proxy-server:3128 %h %p
  2. Host github.com
  3. User [email protected]
  4. Port 443
  5. Hostname ssh.github.com

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

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

[python] view plaincopy

  1. git clone [email protected]:aborn/ulitcs.git

[python] view plaincopy

  1. git push

注意:

1. 上面的proxy-server根据你的代理,设置为替换为你的代理服务器的ip地址或者域名

2. 上面的connect.c 文件、编译好的connect文件和git-proxy文件,也可以从这里下载connect.tar.gz 和git-proxy

3. 我的操作系统为Ubuntu 14.04LTS

时间: 2024-07-31 14:35:50

linux 下 git gem 等代理设置问题的相关文章

Linux下git安装配置

一.Linux下git安装配置 2013-07-28 20:32:10|  分类: 默认分类 |  标签:linux  git  server  |举报|字号 订阅 http://abomby.i.sohu.com/blog/view/168755260.htm http://www.linuxidc.com/Linux/2011-12/48555.htm Git是分布式的版本控制系统,实际上是不需要固定的服务器的,Git与svn的最大区别是,它的使用流程不需要联机,可以先将对代码的修改,评论,

linux下git的安装和使用(转)

转自:http://www.cnblogs.com/sunada2005/archive/2013/06/06/3121098.html 最近在使用github,感觉不错.在windows下,可使用github提供的windows客户端(http://windows.github.com/).很傻瓜,很方便.如何使用?详见:http://www.cr173.com/html/15618_1.html.(有图是王道)最近发现,在公司电脑上安装github的windows客户端时,可能由于公司网络限

hadoop搭建杂记:Linux下JDK环境变量的设置(三种配置环境变量的方法)

Linux下JDK环境变量的设置(三种配置环境变量的方法) Linux下JDK环境变量的设置(三种配置环境变量的方法) ①修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题. vi /etc/profile 在profile文件末尾加入: JAVA_HOME=/usr/share/jdk1.5.0_05PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_H

linux下数据库实例开机自启动设置

linux下数据库实例开机自启动设置 1.修改/oratab [[email protected] ~]# vi/etc/oratab     --把N改为Y,如下提示 # This file is used by ORACLEutilities.  It is created by root.sh # and updated by the Database ConfigurationAssistant when creating # a database. # A colon, ':', is

Linux下git基本使用总结<4>

1.设置别名 例: git config --global alias.st status      用st代替status 以后查看状态git status-> git st 即可 也可以包含参数 例: git config --global alias.ci  "commit -m" 以后提交时 git commit -m "balabala"  -> git ci "balabala" git config 有几种参数 可以为g

Linux下Git和GitHub使用方法总结 (码云)

初学先记住这几条,其他慢慢研究. 下面讲如何用码云完成一个项目的提交, 我的步骤 https://git.oschina.net/phpervip/qianzhu(此例:一个企业模板): 先在码云上注册一个帐号. 然后新建项目,就有一个git地址. 本地进入你的项目目录. 初始化项目->建远程连接->获取项目->添加版本->版本提交->远程提交 git init git remote add origin https://git.oschina.net/phpervip/qi

linux下为目录和文件设置权限,

linux下为目录和文件设置权限,包括子目录的循环递归设置 chmod  命令可以改变所有子目录的权限,下面有2种方法 改变一个文件的权限: chmod mode file|dir 改变所有子目录的权限: chmod mode dir -R                  注意后面加了个-R参数 参数就是权限模式 mode = 777 or 752 ,666,,, mode 的三个数字,分别表示owner,group,others所具有的权限. 1 = x 执行 2 = w 写 4 = r 读

Linux下ThinkPHP网站目录权限设置

在windows上运行好好的项目,迁移到Linux上就遇到了很多问题,其中最为重要的是网站目录权限的设置,当然简单期间你可以用 命令 "chmod 777 -R you web site" ,这样你就不用担心项目运行的时候会涉及到权限问题.通常来说如果你的项目时部署在公网或者是部 署在租用的Linux服务器上不建议这么做,应为如果这样设置了那么任何用户都可以对这个站点下的文件,目录进行操作,这样也会影响网站的运营, 同样不安全.下面以ubuntu14.4 系统为主进行分析. 最简单的做

Linux下Git和GitHub使用方法总结

来源:Linux下Git和GitHub使用方法总结 1 Linux下Git和GitHub环境的搭建 第一步: 安装Git,使用命令 “sudo apt-get install git” 第二步: 到GitHub上创建GitHub帐号 第三步: 生成ssh key,使用命令 “ssh-keygen -t rsa -C "[email protected]"”,your_email是你的email 第四步: 回到github,进入Account Settings,左边选择SSH Keys,