如何强制wget在不修改系统文件的情况下使用代理服务器?


23

我想知道等效于wget的功能,使我能够在调用命令时设置代理(如wget --proxy=$http_proxy)。

有任何想法吗 ?

Answers:


25

如果不修改系统文件,则/etc/wgetrc可以在主目录中创建文件~/.wgetrc。它使您可以在用户级别本地修改wget设置。现在,在以下位置编写以下内容以~/.wgetrc在代理服务器后面使用wget:

use_proxy = on
http_proxy =  http://username:password@proxy.server.address:port/
https_proxy =  http://username:password@proxy.server.address:port/
ftp_proxy =  http://username:password@proxy.server.address:port/

如果您没有代理服务器的用户名和密码,只需在各处都写上代理服务器的地址和端口即可,

http_proxy =  http://proxy.server.address:port/

这应该工作。我假设您已经具有所有其他应用程序的代理设置。


38

-e选项允许您在命令行中像wgetrc中一样提供命令,因此您不需要更改文件...

wget -e use_proxy=yes -e http_proxy=$proxy http://askubuntu.com

辉煌。您已经节省了很多麻烦,这个答案很简单。
通配符

如何关闭它?
Tessaracter

3

您需要编辑wgetrc位于的文件/etc/wgetrc

使用您喜欢的文本编辑器,即:nano /etc/wgetrc编辑它

查找http_proxy标记并删除其前面的,在=符号后添加代理服务器,即:

http_proxy=http://foo.proxy:8080

然后搜索use_proxy标记并删除其前面的,保存文件。

wget 然后将使用指定的代理服务器。

如果您无法与用户一起更改系统配置,则可以将当前配置复制到可以编辑的位置,即:cp /etc/wgetrc ~并使用该--config=~/wgetrc选项强制wget使用您更改的配置,而不是全局配置。


我知道这种可能性,但无法修改配置文件。
fxm 2013年

认为这是wget唯一的选择。
布鲁诺·佩雷拉2013年

这就是为什么我要寻找标题中指示的wget的等效项。
fxm

我已经对标题进行了编辑以反映这一点,首先您要做什么就很清楚了。
布鲁诺·佩雷拉

检查答案的最后一段。
布鲁诺·佩雷拉

1

未提及但应提及的选项:使用环境变量(取决于您的发行版):

http_proxy=http://<proxy-server-ip>:<port>
export http_proxy

或简单地

export http_proxy=http://<proxy-server-ip>:<port>

同样适用于:

https_proxy=http://<proxy-server-ip>:<port>
ftp_proxy=http://<proxy-server-ip>:<port>

您可以包含用户名和密码,如果密码中包含特殊字符,请确保包含“-”。

http_proxy='http://<username>:<password>@<proxy-server-ip>:<port>'

例子:

export http_proxy=http://172.16.1.100:8080
export https_proxy='http://johndoe:ABC!123@172.16.1.100:8080'

1

仅从命令行中,我发现wgethttp_proxy信息之前的命令已成功完成,而无需使用环境变量。例如:

'$ http_proxy=<proxy-server-ip>:<port> wget http://www.example.com/'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.