MAC OSX下终端通过NTLM验证,通过代理上网
公司网络限制如下:
公司通过代理来控制内网用户访问外网的权限。用户名和密码为域用户,采用的验证方式是NTLM(用的是foreFront TMG)
遇到的问题:
在虚拟机,安装的系统为MAC OSX10.9.3,开发iOS,需要在terminal(终端),加载相应的数据包,并安装。
如安装ruby环境,需要先安装rvm,curl -L https://get.rvm.io | bash -s stable
407 Proxy Authentication Required,Forefront TMG 需要授權才能滿足要求。對網頁 Proxy 篩選器的存取遭到拒絕
由于代理的原因,造成出现407 Proxy Authentication Required,Forefront TMG 需要授權才能滿足要求。對網頁 Proxy 篩選器的存取遭到拒絕,
在浏览器中设置代理,是可以访问外网。这个问题花了我两天时间才找到解决方法
NTLM下错的解决方法:
在terminal 中,加载 curl -L https://get.rvm.io | bash -s stable
因为是通过NTLM来验证的。
通过在终端中
export http_proxy="http://userName:passwod@proxy:port"
export https_proxy="http://userName:passwod@proxy:port"
这是不行的。这个只适用于普通的验证。
代理如果NTLM,验证是过不了。
正确的解决步骤如下:
1.中间下载了一个代理软件,authOxy:http://sourceforge.net/projects/authoxy-panther/
按说明安装。安装完后,打开软件如下。
设置用户名和密码。
代理服务器及端口
及authoxy启用后,使用的端口(这个在之后会用到)
2.在终端中(terminal),执行如下操作。记得跟上面对比。
export http_proxy="http://127.0.0.1:8080"
export https_proxy="http://127.0.0.1:8080"
其中,8080端口,就是authoxy中设置的商品
3.设置网络代理
系统偏好设置--》网络--》代理--》WEB 代理(http)/web代理(HTTPS)
设置代理为127.0.0.1 ,端口为8080 (authoxy的运行端口)
4.测试,curl -L https://get.rvm.io | bash -s stable,加载rvm包。
测试成功,如下
浏览器上网如下
中间还试过其他方法如,虽然其他方法没试成功,不过有参考价值:
参考资料:
NTLM代理的使用:http://blog.csdn.net/liukeforever/article/details/6745084
:http://ntlmaps.sourceforge.net/
Proxy Authentication Required解决:
http://blog.csdn.net/zhanghefu/article/details/1591778
http://wenda.io/questions/4892758/install-ruby-gems-behind-ntlm-proxy.html
http://www.leg.uct.ac.za/howtos/use-isa-proxies
回想到之前C#后台访问服务器,应该也是NTLM验证,导致的问题