Working Behind a Network Proxy

From Yocto Project
Jump to navigationJump to search

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"