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 ...
随机推荐
- spring-core依赖jar包
- 迅搜sdk试用
1. sdk支持PHP 2. 针对mysql的某个库的某个表??进行索引,简单的说就是一个project,需要对应一个配置文件: 3. 分索引服务与搜索服务两个,另带中文分词功能:索引数据会有演示,但 ...
- css断句 word-break
word-break:break-all;word-wrap:break-word; 兼容IE6 火狐 chrome
- 清空oracle数据库
在开发过程中,可能经常需要重新初始化数据库,在初始化之前,我们肯定希望不再有以前的老表.存储过程等用户对象,用下面的教本就可以做到这一点: BEGIN FOR rec IN (SELECT objec ...
- Java实现ZIP解压功能
1.引入依赖 <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</ar ...
- centos7.4 install docker-ce
1.uninstall old version docker yum -y remove docker-common docker container-selinux docker-selinux d ...
- python笔记3 - 文件操作
file 对象使用 open 函数来创建,下面说一下对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件,读取/写入文件内容 3.关闭文件. 注意: 文件打 ...
- asp.net知识汇总-页面跳转Server.Transfer和Response.Redirect
1. Server.Transfer 服务器端跳转 webform1.aspx跳转到webform2.aspx页面 webform1.aspx代码如下: protected void Page_Loa ...
- bash脚本IFS=',' read的意思
IFS is the Input Field Separator, which means the string read will be split based on the characters ...
- javascript汇总(转)
字符串操作:http://www.cnblogs.com/magetu/archive/2012/12/18/javascript-string-methods-reference.html 几种对象 ...