wget 不起作用,但 apt-get 起作用

wget 不起作用,但 apt-get 起作用

虽然这个问题与我的 Raspberry Pi 上运行的 Raspbian 有关,但感觉它是一个更通用的 Linux 查询......

Pi 位于包含 Microsoft TMG 服务器的网络上。我在 /etc/apt/apt.conf.d/ 中创建了一个 01proxy 文件,其中包含代理的 http 字符串。该行看起来像这样:

Acquire::http::proxy "http://domain\username:password@proxyip:8080/";

其中,domain 是我们的域,username 是我的用户名,password 是我的密码(包含非字母数字字符),代理 IP 是我们代理的 IP 地址。结果,apt-get更新/安装/升级都工作正常。我现在正在尝试让一般的互联网接入正常工作。为此,我尝试了以下各项:

export http_proxy=http://domain\username:password@proxyip:8080/
export HTTP_PROXY=http://domain\username:password@proxyip:8080/
export http_proxy=http://domain%5Cusername:urlencodedpassword@proxyip:8080/
export HTTP_PROXY=http://domain%5Cusername:urlencodedpassword@proxyip:8080/
export http_proxy=http://username:password@proxyip:8080/
export HTTP_PROXY=http://username:password@proxyip:8080/
export http_proxy=http://username:urlencodedpassword@proxyip:8080/
export HTTP_PROXY=http://username:urlencodedpassword@proxyip:8080/

以及上面的每一个都被引号(“)包围,但我仍然无法让一个简单的 wget 工作。

有任何想法吗?

答案1

老问题,但对于寻找类似问题的人来说可能有用。

用户没有在他的问题中解释他是否正在执行sudo或正在使用 root 帐户。

我经历过类似的事情,wget 可以工作,但 apt-get 不能,当然我在公司防火墙后面。

问题是,我们必须为执行命令的用户导出代理变量,在我的例子中是:

export http_proxy=http://stupid_corporate_proxy:8280
export https_proxy=http://stupid_corporate_proxy:8280

mortiz@florida: wget http://us.archive.ubuntu.com
Proxy Request sent awaiting response .... 200 OK

# And when executing apt-get, it fails

mortiz@florida: sudo apt-get update 
couldn't resolve us.archive.ubuntu.com

这是有道理的,因为对于 root (sudo),我没有导出代理变量,因此用户没有代理。我以 root 身份登录,导出代理变量,然后 apt-get 开始工作。

其他问题可能是用户密码中是否有特殊字符:

export http_proxy=http://domain\username:MyP$ssW0rd@proxyip:8080/

我们可以尝试转义特殊字符:

export http_proxy=http://domain\username:MyP\$ssW0rd@proxyip:8080/

我希望这对寻找答案的人有用。

答案2

我怀疑 TMG 服务器不支持Basic身份验证方法,并且 wget 不提供其他任何内容:(源代码)

所以你运气不好。

相关内容