在 cygwin 上使用 wget 进行代理身份验证

在 cygwin 上使用 wget 进行代理身份验证

这个问题也发布在 SO

我的研究所最近为我们的网络安装了一个新的代理服务器。我正在尝试配置我的Cygwin环境以便能够运行wget并从远程存储库下载数据。

浏览互联网后,我找到了两种不同的解决方案,但似乎没有一种对我的情况有用。

我尝试的第一个方法是这些说明,因此在 Cygwin 中:

cd /cygdrive/c/cygwin64/etc/
nano wgetrc

在文件末尾我添加了:

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

(当然,使用我的用户和密码)

第二种方法是这篇文章,因此在我的 Cygwin 环境中:

export http_proxy=http://username:[email protected]:my.port/
export https_proxy=https://username:[email protected]:my.port/
export ftp_proxy=http://username:[email protected]:my.port/

在这两种情况下,如果我尝试测试我的 wget,我会得到以下结果:

$ wget http://www.google.com
--2020-01-30 12:12:22--  http://www.google.com/
Resolving my.proxy.ip (my.proxy.ip)... 10.1XX.XXX.XX
Connecting to my.proxy.ip (my.proxy.ip)|10.1XX.XXX.XX|:8XXX... connected.
Proxy request sent, awaiting response... 407 Proxy Authentication Required
2020-01-30 12:12:22 ERROR 407: Proxy Authentication Required.

看起来好像我的用户名和密码不正确,但实际上我在浏览器上检查了它们,我的凭证工作正常。

知道这可能是什么原因造成的吗?

答案1

首先,您不应该编辑全局配置/启动文件wgetrc。我会wget使用cygwin安装程序重新安装以获取新的。您不应该编辑全局配置,而应该通过.wgetrc在主文件夹中创建来提供自己的配置。例如

nano ~/.wgetrc

(请注意.文件名的开头,这很重要)

接下来我认为该文件的内容应该是:

use_proxy=on
http_proxy=http://my.proxy.ip:my.port
https_proxy=https://my.proxy.ip:my.port
ftp_proxy=http://my.proxy.ip:my.port
proxy_user=username
proxy_password=password

请注意,我将代理用户名和密码与代理 URL 分开。这并不是说这真的有什么区别,但你永远不知道。我还删除了尾随/有所不同,取决于代理的配置方式。

根据文档

这些启动文件变量允许您覆盖环境指定的代理设置。

这意味着您在配置中输入的内容.wgetrc将覆盖您设置的任何环境变量export

相关内容