Working around Ubuntu's Firewall

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.

你可能感兴趣的:(Working around Ubuntu's Firewall)