5

我的 Linux(redhat6) 服务器必须使用 http 代理连接到外部世界。虽然它适用于 wget 等其他东西,但它不适用于 cabal。

cabal update -v3

显示如下错误:

407 - 需要代理身份验证 cabal:无法下载 http://hackage.haskell.org/packages/archive/00-index.tar.gz:ErrorMisc “不成功的 HTTP 代码:407”

我尝试将 http_proxy 环境变量更改为 http:// user: passwd at proxy:port 的格式,但它也不起作用。

同样的问题已被问到here

但是我不允许使用像 polipo 这样的代理服务器,有没有其他方法可以让阴谋集团在代理后面工作?

4

3 回答 3

2

您可以使用cntlm与代理交谈。它将处理身份验证问题。配置安装后,通过修改等cntlm设置新的环境变量。http_proxyhttps_proxy

你的cabal命令应该在那之后工作。

于 2014-04-17T18:08:39.817 回答
2

这里有一些详细的程序:

  1. 从这里下载cntlm 这是一个没有其他依赖项的ac程序,非常容易制作,只需按照下载包中的说明进行操作即可。

  2. 安装cntlm后,请按照上校恐慌的这个答案。显然在linux上你需要把cntlm.exe改成./cntlm,我把配置文件命名为cntlm.conf

  3. cntlm 的默认监听端口是 3124,如果您不能使用该端口,请将其更改为 53124 之类的其他端口,然后将其添加到您的 cntlm.conf 或 cntlm.ini 文件中:

    Listen              127.0.0.1:53124
    

  4. 在后台启动cntlm:

    
    ./cntlm -c cntlm.conf
    

  5. 更改您的 http_proxy 环境变量以与 cntlm 进程而不是真正的代理对话。

    
    export http_proxy=http:// 127.0.0.1:53124
    

就是这样,阴谋集团将一如既往地运作良好。

于 2014-04-18T21:41:27.743 回答
-1

您也可以直接在系统设置中设置 http_proxy:

http_proxy=http://username:password@hostname:port
于 2015-12-09T16:36:45.557 回答