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

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

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

有任何想法吗 ?

答案1

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

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

答案2

无需修改系统文件,/etc/wgetrc您可以在主目录中创建一个文件~/.wgetrc。它将使您能够在用户级别本地修改 wget 设置。现在在 中写入以下内容~/.wgetrc以在代理服务器后面使用 wget:

use_proxy = on
http_proxy =  http://username:[email protected]:port/
https_proxy =  http://username:[email protected]:port/
ftp_proxy =  http://username:[email protected]:port/

如果您没有代理用户名和密码,只需在各处写入代理地址和端口,例如,

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

这应该可行。我假设您已经为所有其他应用程序设置了代理。

答案3

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

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

寻找http_proxy标记并删除#在它前面,在后面添加代理服务器=签名,即:

http_proxy=http://foo.proxy:8080

然后搜索使用代理服务器标记并删除#在它前面,保存文件。

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

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

答案4

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

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>

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

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

例子:

export http_proxy=http://172.16.1.100:8080
export https_proxy='http://johndoe:[email protected]:8080'

相关内容