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

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"