如何使用代理服务器通过http_proxy变量在Shell提示符下访问Internet

时间:2020-01-09 10:42:22  来源:igfitidea点击:

我通过Squid代理服务器上网。在Linux或者类似Unix的系统上,通过shell提示使用wget,lynx和其他实用程序时,如何通过代理服务器访问Internet?类似于Linux和UNIX的系统具有称为http_proxy的环境变量。它允许您通过代理服务器连接基于文本的会话和/或者应用程序。您只需要代理服务器IP地址(URL)和端口值即可。该变量几乎由所有实用程序使用,例如elinks,lynx,wget,curl和其他命令。

在Linux/OS X/Unix bash shell上设置http_proxy shell变量

执行以下命令来设置代理服务器:

$ export http_proxy=http://server-ip:port/
$ export http_proxy=http://127.0.0.1:3128/
$ export http_proxy=http://proxy-server.mycorp.com:3128/

如果代理服务器需要用户名和密码,则将其添加到URL。
例如,要包括用户名foo和密码栏:

$ export http_proxy=http://foo:bar@server-ip:port/
$ export http_proxy=http://foo:[email protected]:3128/
$ export http_proxy=http://USERNAME:[email protected]:3128/

如何为所有用户设置代理变量?

要将代理环境变量设置为全局变量,请打开/etc/profile文件:

# vi /etc/profile

添加以下信息:

export http_proxy=http://proxy-server.mycorp.com:3128/

或者

export http_proxy=http://USERNAME:[email protected]:3128/

保存并关闭文件。

关于对特定用户启用代理访问的说明

要为特定用户启用代理访问,请添加用户shell程序行配置文件。
对于默认的bash shell,配置文件是文件.bash_profile。
例如,为名为Hyman的特定用户启用代理访问,执行:

$ vi $HOME/.bash_profile

或者

# vi /home/Hyman/.bash_profile

追加以下行:

export http_proxy=http://USERNAME:[email protected]:3128/

保存并关闭文件。

如何通过各种命令行选项使用受密码保护的代理服务器?

您可以简单地使用wget命令,如下所示:

$ wget --proxy-user=USERNAME --proxy-password=PASSWORD http://path.to.domain.com/some.html

Lynx命令具有以下语法:

$ lynx -pauth=USER:PASSWORD http://domain.com/path/html.file

Curl命令具有以下语法:

$ curl --proxy-user user:password http://url.com/