我正在尝试使用windows机器上的cntlm代理与IIS上使用PhantomJS身份验证的本地web应用程序进行对话。要创建代理,我要做的是:cntlm -v -u username@domain -p password -l 1456 localhost:80
我的应用程序住在localhost/myapp
为了测试这是否有效,我尝试浏览到localhost:1456/myapp,但是我总是遇到一个挑战,没有一个合理的用户名/密码组合似乎是可行的。对于为什么这个设置不像预期的那样工作,有什么想法吗?
当我在浏览器中命中代理端点时,这是cntlm的输出:
http://pastebin.com/xvvmfsGV
发布于 2015-09-01 18:49:09
在与这个概念搏斗了一段时间之后,我终于想出了如何设置这个概念。
安装cntlm后,我从命令提示符中运行以下命令:
"c:\Program Files (x86)\Cntlm\cntlm.exe" -u <user_name> -d <domain_name> -H这要求您的密码,并发出三个哈希在配置文件中使用。
我将cntlm.ini中所需的配置缩减为:
Username <user_name>
Domain <domain_name>
PassLM <LM_hash>
PassNT <NT_hash>
PassNTLMv2 <NTLMv2_hash>
Proxy 192.168.7.1:80 #random proxy
NoProxy *
Listen 3133 # unused portcntlm强制您指定顶级代理,即使您不需要一个或有一个代理,所以该选项的任何有效编号都可以。将NoProxy设置为*确保永远不会将任何请求传递给指定的伪代理。
在控制台中运行"c:\Program Files (x86)\Cntlm\cntlm.exe" -f以验证一切是否正常。否则,启动并停止它作为一个服务。
为了使用幻影进行测试,我使用了以下脚本:
var page = require('webpage').create();
page.open('http://<machine_name>/myapp', function(status) {
console.log("Status: " + status);
if(status === "success") {
page.render('example.png');
}
phantom.exit();
});<machine_name>不能是localhost,因为当主机是localhost时,幻影会绕过代理,所以请使用您的计算机名或ip地址。
要运行它:phantomjs --proxy=localhost:3133 test.js
https://stackoverflow.com/questions/31209449
复制相似问题