版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/loveaborn/article/details/24575659

github.com。作为程序猿的代码仓库。我们常常会用到。

但有时候我们不能直接通过网络链接它,仅仅能通过代理。

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

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

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

source ~/.bashrc

然后測试wget是没有问题的。例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZWFib3Ju/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

但使用git clone就不行

 git clone git@github.com:aborn/ulitcs.git 

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

配制过程分为下面几步:

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

 sudo apt-get install socat 

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

#!/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:$_proxy:$1:$2,proxyport=$_proxyport

3. 将git-proxy放到一个文件夹下。如我将它放到/home/lisp/local/bin,并将该文件夹增加到PATH

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

将该文件夹增加到PATH,增加下面内容到~/.bashrc。然后souce ~/.bashrc

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

source ~/.bashrc

4. 改动~/.gitconfig,增加下面行和代理

gitproxy = git-proxy

我.gitconfig文件内容例如以下:

[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文件即可,然后编译

gcc -o connect connect.c

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

6. 改动~/.ssh/config,增加下面行

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

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

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步放置的文件夹一致。

以上步骤完毕后。即可了,例如以下截图:

git clone git@github.com:aborn/ulitcs.git   

git push

注意:

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

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

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

Ubuntu Linux下通过代理(proxy)使用git上github.com的更多相关文章

  1. Ubuntu环境下使用npm编译从git上clone下来的前端(Javascript)项目

    一.更新Ubuntu软件源 打开终端依次输入: $ sudo apt-get update $ sudo apt-get install -y python-software-properties s ...

  2. ubuntu linux 下wine的使用

    ubuntu linux 下wine的使用 之前写了一篇 ubuntu15.10下编译安装wine1.8rc4 这一篇是来写它的使用的. 1.安装Wine支持包 现在,需要安装非开源(但免费)的支持包 ...

  3. 在Ubuntu Linux下怎样安装QQ

    最近好多人在吐槽Linux下上QQ简直就是煎熬,网页版的不方便,网上各种版本的QQ要么是功能不全.要么是界面丑到爆,要么是运行不稳定.那么这次为大家带来一个功能完整.运行稳定的wineQQ安装过程. ...

  4. Ubuntu Linux下设置IP的配置命令

    Ubuntu Linux下设置IP的配置命令 今天装了Ubuntu,但是发现不能上网,开始排查问题: 1.首先确定网络连接是否正确,所用的网线是否可以正常工作 2.查看网卡是否能正常工作,检测的方法如 ...

  5. Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  6. Ubuntu Linux下安装Oracle JDK

    from://http://blog.csdn.net/gobitan/article/details/24322561 Ubuntu Linux下安装Oracle JDK Dennis Hu 201 ...

  7. Ubuntu\Linux 下编写及调试C\C++

    一.在Ubuntu\Linux 下编写及调试C\C++需要配置基本的环境,即配置gcc编译器.安装vim编译器,具体配置安装步骤我在这里就不多说了. 二.基本环境配置完了我们就可以进入自己的程序编写了 ...

  8. Linux下自动备份MySQL数据库并上传到远程FTP服务器

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明:  1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...

  9. Linux下一键安装包的基础上安装SVN及实现nginx web同步更新

    Linux下一键安装包的基础上安装SVN及实现nginx web同步更新 一.安装 1.查看是否安装cvs rpm -qa | grep subversion 2.安装 yum install sub ...

随机推荐

  1. ajax发送请求时为url添加参数(使用函数)

    <script> // ajax的get请求,使用函数向其url添加参数 function addURLParam(url,name,value){ url+=(url.indexOf(' ...

  2. PHP学习笔记(10)mysql常用命令

    1. 连接mysql数据库: 输入: mysql> mysql -uroot -p123(注意后面没有分号!!) 输出: mysql: [Warning] Using a password on ...

  3. 在GOOGLE浏览器中模拟移动浏览器 调试Web app

    在此记录下,以便在今后的工作中用到. 首先通过F12 or Ctrl+Shift+i,打开开发者工具,点击开发者工具面板的 (show  drawer)按钮,出现如下图所示的面板: 切换至Emulat ...

  4. php-fpm nginx 使用 curl 请求 https 出现 502 错误

    用php curl请求https的url出现502错误,请求帮忙解决. PHP版本:5.6.7Nginx版本:1.8.0 代码如下: $ch = curl_init(); curl_setopt($c ...

  5. The Ball Puzzle

    自己做的小游戏 google play store: https://play.google.com/store/apps/details?id=com.ffipp.theBall app store ...

  6. Confusing Date Format UVALive 7711 给定mm-mm-mm格式的时间。年份(1900-1999)只给了后两位数,问有多少种合法的排列使时间正确。

    /** 题目:Confusing Date Format UVALive 7711 链接:https://vjudge.net/contest/174844#problem/A 题意:给定mm-mm- ...

  7. Scrapy shell使用

    注意:容易出现403错误,实际爬取时不会出现. response - a Response object containing the last fetched page >>>re ...

  8. Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console、file等。Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别。

    Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console.file等.Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别. ...

  9. Deep Networks for Image Super-Resolution with Sparse Prior

    深度学习中潜藏的稀疏表达 Deep Networks for Image Super-Resolution with Sparse Prior http://www.ifp.illinois.edu/ ...

  10. C语言程序设计-同一天生日[综合应用]

    [问题描述] 在一个有200人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的学号,出生月日,试找出所有生日相同的学生. [输入形式] 第一行为整数n,表示有n个学生,n<=200. ...