Ubuntu Linux下通过代理(proxy)使用git上github.com
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的更多相关文章
- Ubuntu环境下使用npm编译从git上clone下来的前端(Javascript)项目
一.更新Ubuntu软件源 打开终端依次输入: $ sudo apt-get update $ sudo apt-get install -y python-software-properties s ...
- ubuntu linux 下wine的使用
ubuntu linux 下wine的使用 之前写了一篇 ubuntu15.10下编译安装wine1.8rc4 这一篇是来写它的使用的. 1.安装Wine支持包 现在,需要安装非开源(但免费)的支持包 ...
- 在Ubuntu Linux下怎样安装QQ
最近好多人在吐槽Linux下上QQ简直就是煎熬,网页版的不方便,网上各种版本的QQ要么是功能不全.要么是界面丑到爆,要么是运行不稳定.那么这次为大家带来一个功能完整.运行稳定的wineQQ安装过程. ...
- Ubuntu Linux下设置IP的配置命令
Ubuntu Linux下设置IP的配置命令 今天装了Ubuntu,但是发现不能上网,开始排查问题: 1.首先确定网络连接是否正确,所用的网线是否可以正常工作 2.查看网卡是否能正常工作,检测的方法如 ...
- Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- Ubuntu Linux下安装Oracle JDK
from://http://blog.csdn.net/gobitan/article/details/24322561 Ubuntu Linux下安装Oracle JDK Dennis Hu 201 ...
- Ubuntu\Linux 下编写及调试C\C++
一.在Ubuntu\Linux 下编写及调试C\C++需要配置基本的环境,即配置gcc编译器.安装vim编译器,具体配置安装步骤我在这里就不多说了. 二.基本环境配置完了我们就可以进入自己的程序编写了 ...
- Linux下自动备份MySQL数据库并上传到远程FTP服务器
Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...
- Linux下一键安装包的基础上安装SVN及实现nginx web同步更新
Linux下一键安装包的基础上安装SVN及实现nginx web同步更新 一.安装 1.查看是否安装cvs rpm -qa | grep subversion 2.安装 yum install sub ...
随机推荐
- CCNA2.0笔记_IPv4
ipv4对于OSI是个网络层协议,对于TCP/IP是个Internet层协议 ipv4是一个无连接/尽力传输协议 Ipv4定义了两大类广播地址 1,全向广播:255.255.255.255 2,定向广 ...
- Action方法调用
一.Action访问路径 Action的访问路径是由struts.xml文件中配置的Action所在包的命名空间,Action的名字和常struts.action.extension共同决定的 例如: ...
- ubuntun 下安装 node-v0.10.26
sudo apt-get install g++ curl libssl-dev apache2-utils wget http://nodejs.org/dist/v0.10.26/node-v0. ...
- hdu6038 Function 函数映射
/** 题目:hdu6038 Function 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6038 题意:给定一个a排列[0,n-1],一个b排列[0, ...
- git clone ....git
[root@st153 git_test3]# git clone git@gitlab.gaobo.com:root/pythontest1.gitCloning into 'pythontest1 ...
- JQ 报表插件 jquery.jqplot 使用
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- Oracle启动中,spfile.ora、init<SID>.ora、spfile<SID>.ora 这三个文件正确的先后顺序是什么?
Oracle启动中,spfile.ora.init<SID>.ora.spfile<SID>.ora 这三个文件正确的先后顺序是什么? 解答:启动数据库,使用startup命令 ...
- js节流防抖应用场景,以及在vue中节流防抖的具体实现
故事背景: 项目有个需求是输入框在输入的时候进行搜索,展示下拉数据,但是没必要输入一个字都进行搜索,所以想到了在输入结束200毫秒后再进行搜索,从而引出来了 js的节流(throttle),防抖(de ...
- android发送邮件
众所周知,在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外. 在Android中,调用Email有三种类型的Intent: Intent.ACT ...
- css中div高度自适应
高度的自适应(父div高度随子div的高度改变而改变) 1.如果父div不定义height.子div均为标准流的时候,父div的height随内容的变化而变化,实现父div高度随子div的高度改变而改 ...