A proxy is "an interface for a service, especially for one that is remote, resource-intensive, or otherwise difficult to use directly". Source: Proxy - Wiktionary.
Some programs (like wget) use environment variables of the form "protocol_proxy" to determine the proxy for a given protocol (e.g. HTTP, FTP, ...).
Below is an example on how to set these variables in a shell:
http_proxy=http://10.203.0.1:5187/ export http_proxy
Automation with network managers
- NetworkManager can't change the environment variables.
- netcfg is flexible enough to enable per-profile environment variables setting as described in the "Proxy settings" section of the netcfg article.
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 Template:Codeline binary takes URL(s) as argument(s) and returns the proxy/proxies that could be used to fetch this/these network resource(s).
As of 06/04/2009 libproxy is required by libsoup.