有些公司,上网有限制,却没有统一配置网关和路由,只是提供了上外网的代理。 IT设施的不完善,只能让员工本身想办法。 固然,也有些状况是特殊的网络策略与权限管理所致。git
Cntlm是一个HTTP二级代理软件。 它主要的做用,是在能代理上网的前提下,给这个代理再作一个代理,提供给更多的下级用户。 下级用户不须要、也不可能知道代理的帐户密码,这样既保障了安全、又实现了方便。github
以Debian系的安装为例:shell
sudo apt install cntlm
非Debian系的安装,也是相似的形式。 Cntlm是一个很老的软件,在各大Linux发行版都有发布。 甚至,连Windows下也有发布,能够经过choco
安装。安全
choco install cntlm
下面的介绍以Linux为例。 Windows下的配置,和Linux大同小异,只是文件位置不一样。网络
Cntlm安装后,在/etc/cntlm.conf
就有一份默认配置。 若是须要在线查看配置,能够参考cntlm.conf。ide
如下配置,几乎是/etc/cntlm.conf
的最简配置。.net
Username USERNAME Domain COMPANY_DOMAIN Password ******** Proxy proxy.company.com:8080 Proxy proxy2.company.com:8080 NoProxy localhost, 127.0.0.*, 10.*, 192.168.*, .company.com Listen 3128
注意:其中USERNAME
、proxy.company.com:8080
等,应该换成本身的场景适用的值。 此外,若是使用下一节【获取Auth】的手段,Password
配置可省略。代理
这个配置,仅能让本机访问。 若是要容许localhost
之外的机器访问,则须要再添加Gateway yes
。rest
Gateway yes
若是须要限制外部访问,能够设置黑(Deny
)白(Allow
)名单。code
Allow 127.0.0.1 Deny 0/0
以上配置修改完成后,须要重载或重启cntlm
。 具体方法见重载或重启。
$ sudo cntlm -vc /etc/cntlm.conf -M http://baidu.com section: global, Username = 'USERNAME' section: global, Domain = 'COMPANY_DOMAIN' section: global, Proxy = 'proxy.company.com:8080' section: global, Proxy = 'proxy2.company.com:8080' section: global, NoProxy = 'localhost, 127.0.0.*, 10.*, 192.168.*, .company.com' section: global, Listen = '3128' ... HEAD: HTTP/1.1 200 OK OK (HTTP code: 200) ----------------------------[ Profile 1 ]------ Auth NTLM PassNT 7FA051B4B85F0E7EEBB24D3CD73E52B0 PassLM 23A1E1A7276E84EA4846D4C9FF957C35 ------------------------------------------------ cntlm: Terminating with 0 active threads
添加如下内容到刚才修改过的/etc/cntlm.conf
:
Auth NTLM PassNT 7FA051B4B85F0E7EEBB24D3CD73E52B9 PassLM 23A1E1A7276E84EA4846D4C9FF957C31
在使用包管理器安装的状况下,Cntlm默认由systemd
来守护,开机自启。
修改配置后,重载便可生效:
sudo systemctl reload cntlm
若仍未生效,能够尝试重启:
sudo systemctl restart cntlm