虽然这个问题与我的 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 不提供其他任何内容:(源代码)。
所以你运气不好。