If the proxy environment variables are set for the user only (say, from manual commands or .bashrc) they will get lost when running commands with [[sudo]] (or when programs like [[yaourt]] use sudo internally).

+

+

A way to prevent that is to add the following line to the sudo configuration file (accessible with visudo) :

This configuration can also be set to automatically execute when [[NetworkManager#Proxy_settings|Network Manager]] connects to specific networks , by using the package {{Package AUR|proxydriver}} from the [[AUR]]

+

This configuration can also be set to automatically execute when [[NetworkManager#Proxy_settings|Network Manager]] connects to specific networks , by using the package {{AUR|proxydriver}} from the [[AUR]]

Revision as of 08:40, 5 August 2013

This article or section needs expansion.

Reason:please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Proxy settings#)

Some programs look for the all caps version of the environment variables.

If the proxy environment variables are to be made available to all users and all applications, the above mentioned export commands may be added to a script, say "proxy.sh" inside /etc/profile.d/. The script has to be then made executable. This method is helpful while using a Desktop Environment like Xfce which does not provide an option for proxy configuration. For example, Chromium browser will make use of the variables set using this method while running XFCE.

Alternatively you can automate the toggling of the variables by adding a function to your .bashrc (thanks to Alan Pope)

As an alternative, you may want to use the following script. Add this script into your ".bashrc" and source the ".bashrc" file.
Note that, It is recommended to put these kind of scripts in a separete file like "functions" then source this file instead of putting everything under ".bashrc".
You just need to change the areas "YourUserName" and "ProxyServerAddress:Port" obviously.
You may also want to change the name "myProxy" into something short and easy to write.

Keep proxy through sudo

If the proxy environment variables are set for the user only (say, from manual commands or .bashrc) they will get lost when running commands with sudo (or when programs like yaourt use sudo internally).

A way to prevent that is to add the following line to the sudo configuration file (accessible with visudo) :

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

You may also add any other environment variable, like rsync_proxy, or no_proxy.

Automation with network managers

netctl could set-up these environment variables but they would not be seen by other applications as they are not child of netctl.

About libproxy

libproxy (which is available in the extra repository) is an abstraction library which should be used by all applications that want to access a network resource. It still is in development but could lead to a unified and automated handling of proxies in GNU/Linux if widely adopted.

The role of libproxy is to read the proxy settings form different sources and make them available to applications which use the library. The interesting part with libproxy is that it offers an implementation of the Web Proxy Autodiscovery Protocol and an implementation of Proxy Auto-Config that goes with it.

The /usr/bin/proxy binary takes URL(s) as argument(s) and returns the proxy/proxies that could be used to fetch this/these network resource(s).

Note: the version 0.4.11 does not support http_proxy='wpad:' because { pkg-config 'mozjs185 >= 1.8.5'; } fails .

As of 06/04/2009 libproxy is required by libsoup. It is then indirectly used by the Midori browser.

Web Proxy Options

Simple Proxy with SSH

Connect to a server (HOST) on which you have an account (USER) as follows

ssh -D PORT USER@HOST

For PORT, choose some number which is not an IANA registered port. This specifies that traffic on the local PORT will be forwarded to the remote HOST. ssh will act as a SOCKS server. Software supporting SOCKS proxy servers can simply be configured to connect to PORT on localhost.

Using a SOCKS proxy

There are two cases:

the application you want to use handles SOCKS proxies (for example Firefox) then you just have to configure it to use the proxy

the application you want to use does not handle SOCKS proxies then you can try to use tsocks (available in extra)

Proxy settings on GNOME3

Some programs like Chromium prefer to use the settings stored by gnome. These settings can be modified through the gnome-control-center front end and also through gsettings.