我正在企业互联网代理后面的VMWare VPC中运行程序(Mathematica)。安装在该VPC中的各种程序,如IE,Chrome,Excel,Word,Acrobat Reader,甚至MS Paint都可以毫无问题地从Internet获取数据,但Mathematica似乎无法正确处理代理。
我的猜测是它无法处理代理的NTLM身份验证。
在早期的情况下,在不同的防火墙后面,我在CNTLM作为Mathematica和代理之间的中间人取得了一些成功。 CNTLM与代理进行对话并负责NTLM认证,并且Mathematica给出了CNTLM监听的端口和ip地址(localhost),以便进行通信。但是,在之前的案例中,我知道要用于代理的凭证(即我自己的凭证)。
在目前的情况下,我的登录使用智能卡和PIN进行。 VPC透明地传递凭证(我不必输入它们),显然我上面提到的所有程序都自动了解它们。这让我觉得Mathematica或CNTLM也应该能够做到这一点。但是,我用作密码的PIN不起作用(事实上,如果我经常尝试,我会被锁定)。我假设使用的凭证实际上不是我自己的凭证,但是要么是Windows密码(我没有智能卡用户),要么是从我的PIN和智能卡中获得的。
我的问题是:如何让这个设置工作?这可能涉及CNTLM,但也欢迎其他解决方案。
答案 0 :(得分:4)
您可以使用浏览器代理,例如Fiddler
与CNTLM一样,Fiddler也充当本地代理并允许支持代理的应用程序,但不支持NTLM(它们支持“普通”代理)不直接使用公司代理,而是通过本地代理。
与CNTLM不同,Fiddler不需要配置凭据,但它使用当前用户信任来验证Web请求。
我无法确定这是否适合您,因为我没有像您这样的环境,但此解决方法适用于此处报告的其他一些情况 answer about ruby gem 或者/和blog about mercurial所以我希望这也适用于 Mathematica 。
注意:运行Fiddler后,它会自动将浏览器代理配置为自身(http://localhost:8888
),因此您可以将应用程序的代理设置保留为“使用我的系统或浏览器中的代理设置”。顺便说一句,Fiddler不仅是本地代理,也可以用于故障排除或调试,here