Working around Ubuntu's Firewall

本文介绍如何通过配置代理服务器让Git在Ubuntu系统的防火墙环境下正常工作,包括使用corkscrew工具、设置环境变量及系统代理的方法。

Working around Ubuntu's Firewall

"Git" is a great tool and does work behind proxy's / firewalls with a little help. There are many ways to do this however this section will only cover "corkscrew".


Corkscrew

Download "corkscrew" at Corkscrew and un-tar it.

cd corkscrew-2.0
./configure
make
cp corkscrew ~/bin/corkscrew

This can be placed anywhere as long as it is in PATH. Next create the following simple shell script called git-proxy in ~/bin directory (or some place listed in PATH).Replace items inbetween "<...> with the correct information.

#!/bin/sh
exec <path_to_corkscrew>/corkscrew <proxy_name> <proxy port> $*

Save the file and give it execute permissions

chmod u+x git-proxy

Run it to test it. It should give the usage statement for corkscrew.

Now tell git you want to use a proxy. Replace the stuff between the "<...>" and don't leave out the single quotes.

git config --global core.gitproxy '<path_to_proxy>/git-proxy'

This will setup "git" to always use the proxy for all git commands, with all git trees. To set the proxy for just a specific git tree execute instead something similar to the following. The below command configures "git" to use the proxy for all URLs with a kernel.org suffix.

git config --global core.gitproxy '"<path to proxy>/git-proxy"; for kernel.org' 'for kernel.org$'


Ubuntu's Firewall setting

Configure Ubuntu's "Network Proxy" appropriately to get access to source code

  • System-->Preferences-->Network Proxy
  • Set the following parameters:
  • Select: "Proxy Configuration"
  • Select: "Manual proxy configuration"
  • Check mark: "Use the same proxy for all protocols
  • Enter following data: HTTP proxy:<enter proxy address> Port: <enter port>
  • Close

Configure the Proxy for the package manager:

  • System -> Administrator -> Synaptic Package Manager
  • Login -> Settings -> Preferences
  • Network tab -> Add the HTTP proxy and port number in order to get the package manager to be able to get past the firewall.

Configure "http_proxy" and "ftp_proxy" environmental variable: If there is a need to use a proxy server to access the web set the environment variables "http_proxy" and "ftp_proxy". This will allow "apt-get" etc. to use this environment variable value. Below would be the ideal way of assigning values for "http_proxy":


export http_proxy=”<proxy-server>:<port>”  
export https_proxy="<proxy-server>:<port>"
export ftp_proxy="<proxy-server>:<port>"

Add this to ~/.bashrc so that everytime the machine is rebooted this variable does not have to be exported.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值