Working Behind a Network Proxy
This page lists some configuration tips for working behind a proxy.
HTTP/HTTPS/FTP Setup
Set the following environment variables in your ~/.bashrc file. This example uses the same proxy server and port number for all three protocols.
export http_proxy='http://myproxy.example.com:1080/' export https_proxy='https://myproxy.example.com:1080/' export ftp_proxy='http://myproxy.example.com:1080/' export no_proxy='.example.com'
Git Setup (with socat)
First make sure you have the socat utility installed on your host (in Ubuntu, this should be a simple command "sudo apt-get install socat")
Create a script named git-proxy and put it in /usr/local/bin:
#!/bin/bash # $1 = hostname, $2 = port PROXY=myproxy.example.com exec socat STDIO SOCKS4:$PROXY:$1:$2
Then run the following command:
git config --global core.gitProxy git-proxy
Git Setup (with nc)
First make sure you have the netcat utility (nc) installed on your host.
Create a script named git-proxy and put it in /usr/local/bin:
#!/bin/bash PROXY=myproxy.example.com PORT=1080 case $1 in # list internal git servers here that you do not want to use # the proxy with, separated by a pipe character '|' as below: internalgit1.example.com|internalgit2.example.com) METHOD="-X connect" ;; *) METHOD="-X 5 -x ${PROXY}:${PORT}" ;; esac /usr/bin/nc $METHOD $*
Note that on some Linux distros, the nc binary is in /bin. You can also change the '5' in the second METHOD line to '4' if your proxy server only supports SOCKS v4.
Then set the environment variable GIT_PROXY_COMMAND in your ~/.bashrc file and point it to this script:
export GIT_PROXY_COMMAND=/usr/local/bin/git-proxy export GIT_PROXY_IGNORE="example.com"
Subversion Setup
You'll need to have the following in your ~/.subversion/servers file:
[global] http-proxy-exceptions = *.exception.com, www.internal-site.org http-proxy-host = myproxy.example.com http-proxy-port = 1080
You can also set http-proxy-username and http-proxy-password if your proxy requires authentication.
CVS Setup (this seems useless since we don't have any recipe requiring cvs now)
For CVS checkouts to work correctly, you need to add some options in your Poky local.conf file.
CVS_PROXY_HOST = "myproxy.example.com" CVS_PROXY_PORT = "1080"