文档章节

Cntlm安装和配置心得

猪刚烈
 猪刚烈
发布于 2014/10/12 11:47
字数 1409
阅读 60
收藏 0
点赞 0
评论 0
对于那些使用NTLM进行身份验证的网络代理环境(即设置上除需要代理主机和端口之外还需要提供域用户和密码)来说,通过代理上网是一件头痛的事情,这主要是因为很多软件不支持NTLM验证的代理(比如目前的GIT就不能支持NTLM验证,即使在代理中指定了域帐号和密码,在连接过程中依然报: Received HTTP code 407 from proxy after CONNECT ,说明验证并未通过),如果有这样一种工具能封装NTLM验证然后对外提供普通的HTTP代理服务,那么第三方应用就可以通过配置普通的代理访问网络了,这就是Cntlm (项目官网:http://cntlm.sourceforge.net/)所要解决的问题! 由于Cntlm也有linux版本,这意味着在linux系统上通过NTLM身份验证的网络代理也是可行的。本文原文出处: http://blog.csdn.net/bluishglc/article/details/37600773 严禁任何形式的转载,否则将委托CSDN官方维护权益!

配置


下载安装Cntlm之后,只需要修改cntlm.ini文件,提供身份认证必要的信息,然后以服务的方式启动cntlm就可以了。在cntlm.ini中有如下几个重要的配置是可能需要修改的:
  • Username - your domain/proxy account name

  • Domain - the actual domain name

  • Workstation - NetBIOS name of your workstation; Cntlm tries to autodetect it, but you might want to set it explicitly should dialect detection fail (see below)

  • Proxy - IP address (or ping-able hostname) of your proxy; if you use several alternative proxies or know of backup ones, use this option multiple times; if one stops working, Cntlm will move on to the next

  • Listen - local port number which Cntlm should bind to; the default is OK, but remember you can't have more than one application per port; you can use netstat to list used up ports (lines with LISTEN)

其中Listen配置项是cntlm将在本地打开的作为普通代理的端口,假如我的windows域是abc,帐号是laurence,密码是123,代理服务器是192.168.0.1:80,则cntlm.ini应该如下配置:


#
# Cntlm Authentication Proxy Configuration
#
# NOTE: all values are parsed literally, do NOT escape spaces,
# do not quote. Use 0600 perms if you use plaintext password.
#

Username	laurence
Domain		abc
Password	123
# NOTE: Use plaintext password only at your own risk
# Use hashes instead. You can use a "cntlm -M" and "cntlm -H"
# command sequence to get the right config for your environment.
# See cntlm man page
# Example secure config shown below.
# PassLM          1AD35398BE6565DDB5C4EF70C0593492
# PassNT          77B9081511704EE852F94227CF48A793
### Only for user 'testuser', domain 'corp-uk'
# PassNTLMv2      D5826E9C665C37C80B53397D5C07BBCB

# Specify the netbios hostname cntlm will send to the parent
# proxies. Normally the value is auto-guessed.
#
# Workstation	netbios_hostname

# List of parent proxies to use. More proxies can be defined
# one per line in format <proxy_ip>:<proxy_port>
#
Proxy		192.168.0.1:80

# List addresses you do not want to pass to parent proxies
# * and ? wildcards can be used
#
NoProxy		localhost, 127.0.0.*, 10.*, 192.168.*

# Specify the port cntlm will listen on
# You can bind cntlm to specific interface by specifying
# the appropriate IP address also in format <local_ip>:<local_port>
# Cntlm listens on 127.0.0.1:3128 by default
#
Listen		3128

# If you wish to use the SOCKS5 proxy feature as well, uncomment
# the following option. It can be used several times
# to have SOCKS5 on more than one port or on different network
# interfaces (specify explicit source address for that).
#
# WARNING: The service accepts all requests, unless you use
# SOCKS5User and make authentication mandatory. SOCKS5User
# can be used repeatedly for a whole bunch of individual accounts.
#
#SOCKS5Proxy	8010
#SOCKS5User	dave:password

# Use -M first to detect the best NTLM settings for your proxy.
# Default is to use the only secure hash, NTLMv2, but it is not
# as available as the older stuff.
#
# This example is the most universal setup known to man, but it
# uses the weakest hash ever. I won't have it's usage on my
# conscience. :) Really, try -M first.
#
#Auth		LM
#Flags		0x06820000

# Enable to allow access from other computers
#
#Gateway	yes

# Useful in Gateway mode to allow/restrict certain IPs
# Specifiy individual IPs or subnets one rule per line.
#
#Allow		127.0.0.1
#Deny		0/0

# GFI WebMonitor-handling plugin parameters, disabled by default
#
#ISAScannerSize     1024
#ISAScannerAgent    Wget/
#ISAScannerAgent    APT-HTTP/
#ISAScannerAgent    Yum/

# Headers which should be replaced if present in the request
#
#Header		User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)

# Tunnels mapping local port to a machine behind the proxy.
# The format is <local_port>:<remote_host>:<remote_port>
# 
#Tunnel		11443:remote.com:443


其中对于监听端口使用默认的端口3128就可以了。我们可以通过命令来验证配置是否正确:

cntlm -c /path/to/cntlm.ini -I -M http://www.baidu.com

如果能正常返回就表示各项配置都是正确的,接下就可以启动cntlm服务在后台运行了,使用命令:

net start cntlm

服务启动之后,我们就可以在第三方应用的代理配置上这样设定了:代理服务器:127.0.0.1 (即本机),代理服务器端口:3128(即cntlm.ini文件中配置的Listen端口)

日志与常见错误


cntlm绝大多数错误表现为服务无法启动,具体原因有很多,好在cntlm有较好的日志信息可以帮助我们找到问题的根源,查看cntlm日志的方法是:Start -> Settings -> Control Panel -> Administrative Tools -> Event Viewer, 然后在左侧面板的目录树中选择:Windows Logs -> Application, 再在右侧面板中配置一下过虑项,将事件源设定为cntlm就可以过滤出所有的cntlm日志了。

这里我们介绍两种可能的错误:

1. cntlm: PID XXXX: Possible duplicate cygwin1.dll: /socat-1.7.2.1/cygwin1.dll.



类似这样的错误是由于cygwin1.dll冲突引起的,有多种工具会携带自己的cygwin1.dll,如果版本不兼容就会报如上的错误,最简单的方是先移除它们。

2. cntlm: Parent proxy address missing



这是一个容易造成误导的错误,如果多数情况下并不是因为你在cntlm.ini中错误地制定了Proxy而是cntlm程序启动时根本没用找到cntlm.ini文件,造成这种问题的可能诱因之一是在安装cntlm时修改了默认的安装目录,这应该是cntlm的一个bug。不知道在启动cntlm服务的配置界面(Control Panel -> Administrative Tools -> Services)上指定-c参数是否有效,有兴趣的朋友可以尝试一下,我是按默认配置重装了cntlm解决的问题。

本文转载自:http://blog.csdn.net/bluishglc/article/details/37600773

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
认证代理上网工具--Cntlm

问题: 公司网络使用了域账号管理机制,上网必须配指定的机器名和域名,最头痛的是还需要密码,访问网站经常弹出输入用户名密码的窗口,很多软件都不能自动升级。 解决办法: 是使用 Cntlm ...

匿名 ⋅ 2012/08/28 ⋅ 0

Sbt 使用技巧

要做scala开发,sbt是绕不过去的一个坎,里面有许多坑,接下来看我怎么一一解决。 sbt 之 网络问题 Q: 首次执行sbt,程序停着不动,是个什么情况? A: 一般来说,这就是网络不是很通畅所导致...

pearma ⋅ 2017/04/10 ⋅ 0

ITDB究竟怎么才能使用

我觉得它还是一个很不错的软件,为了尝试它的新功能 我安装了CentOS 5.5 X64 安装了php 5.2 httpd2.2 Sqlite也安装了3.7.4 一步一步按照安装说明设置了权限和配置了conf.php , 为啥该死的操...

Judezhu ⋅ 2011/01/16 ⋅ 8

虚拟机测试必备虚拟机之VirtualBox 使用

安装,windowns在官网上对应版本下载下一步安装结束即可,配置有seting可以选择中文,方便理解,其实英文也好功能 不多。 安装linux:ubuntu,如果有网sudo apt-get install VirtualBox rea...

天马行空的鱼 ⋅ 2016/02/23 ⋅ 0

请问有谁安装配置过Heartbeat3.0以上版本?请指教

不知道为什么heartbeat3.0的版本特别难装,花了我那么长时间装上了,居然启动之后没反应,连个日志都没有,我真是郁闷至极。 有没有安装配置过的朋友,说说心得啊,我都凌乱了!

test_123 ⋅ 2012/08/03 ⋅ 1

apache的URL重写使用心得

apache的URL重写使用心得 整合PHP和Apache   第一步,安装好apache服务器   第二步,在apache安装目录下的conf文件夹下用记事本打开httpd.conf     1、修改DocumentRoot为网站根目录...

冯京宝 ⋅ 2012/08/02 ⋅ 1

installshield 安装程序使用心得

installshield 安装程序使用心得: 要制作带虚拟目录的安装程序,首先进入Installation Designer面板,然后点选Server Configuration--Internet Information Services 在中间的列表框中选中...

小狗熊 ⋅ 2011/06/07 ⋅ 0

php环境搭建连接被重置的问题

我从事的是java,好奇的原因,今晚用了几个小时在windows7上搭建了一下php的环境,但是失败了: 系统环境:windows 7 32bit php环境:php 5.2.17 apache环境:apache 2.2 ------------------...

it-达摩 ⋅ 2011/04/02 ⋅ 8

Java内存监视

Java程序内存问题跟踪 最近在研究Java程序内存问题跟踪,主要处理程序在上时间运行情况下各种 OutOfMemory 异常,将使用的工具和心得点滴记录在这里备忘 常用工具 JDK1.6版本自带很多丰富的内...

HappyBoyLi ⋅ 2016/02/22 ⋅ 0

nginx的记录配置心得

今天本来要去见自己喜欢的一个人的,唉,感觉自己的爱情龙卷风来了,来的很猛烈,我今天还把自己的胡子刮的很干净,悲催的是那位女士像木头一样,不知道她怎么想的,我发微信她也偶尔回复我,...

xitaotao ⋅ 2016/08/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 3分钟前 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

OSC_cnhwTY ⋅ 10分钟前 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 12分钟前 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 20分钟前 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 21分钟前 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 50分钟前 ⋅ 0

Linux(CentOS)下配置php运行环境及nginx解析php

【part1:搭建php环境】 1.选在自己需要安装的安装包版本,wget命令下载到服务器响应目录 http://php.net/releases/ 2.解压安装包 tar zxf php-x.x.x 3.cd到解压目录执行如下操作 cd ../php-...

硅谷课堂 ⋅ 57分钟前 ⋅ 0

Nginx服务架构初探(四):nginx服务器的rewrite功能

nginx服务器的rewrite功能 1.nginx后端服务器组的配置 1>upstream name {…} name是给服务器组限的组名 2>server address [parameters]; address为服务器地址 parame......

余温灬未存 ⋅ 今天 ⋅ 0

layer.prompt使文本框为空的情况下也能点击确定

最近一直在使用layui,但是用到弹出层layer.prompt时,如果文本框是空的话点击确定没有反应,不能向下执行。 但是我又需要空值,看看我原来的代码。 123456789 layer.prompt...

孟飞阳 ⋅ 今天 ⋅ 0

Linux普通文件压缩工具gzip、Bzip2、xz

第六章 文件压缩和打包 6.1 压缩打包介绍 Linux环境常见压缩文件类型: .zip,.gz,.bz2,.xz, .tar.gz,.tar.bz2,.tar.xz 压缩打包的目的 方便文件传输 节省磁盘空间 减少传输花费的时间 ...

弓正 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部