有些公司,上网有限制,却没有统一配置网关和路由,只是提供了上外网的代理。 IT设施的不完善,只能让员工自己想办法。 当然,也有些情况是特殊的网络策略与权限管理所致。

Cntlm是一个HTTP二级代理软件。 它主要的作用,是在能代理上网的前提下,给这个代理再做一个代理,提供给更多的下级用户。 下级用户不需要、也不可能知道代理的账户密码,这样既保障了安全、又实现了方便。

安装

以Debian系的安装为例:

sudo apt install cntlm

非Debian系的安装,也是类似的形式。 Cntlm是一个很老的软件,在各大Linux发行版都有发布。 甚至,连Windows下也有发布,可以通过choco安装。

choco install cntlm

下面的介绍以Linux为例。 Windows下的配置,和Linux大同小异,只是文件位置不同。

配置

Cntlm安装后,在/etc/cntlm.conf就有一份默认配置。 如果需要在线查看配置,可以参考cntlm.conf。

修改cntlm.conf

以下配置,几乎是/etc/cntlm.conf的最简配置。

Username    USERNAMEDomain      COMPANY_DOMAINPassword    ********Proxy       proxy.company.com:8080Proxy       proxy2.company.com:8080NoProxy     localhost, 127.0.0.*, 10.*, 192.168.*, .company.comListen      3128

注意:其中USERNAMEproxy.company.com:8080等,应该换成自己的场景适用的值。 此外,如果使用下一节【获取Auth】的手段,Password配置可省略。

这个配置,仅能让本机访问。 如果要允许localhost以外的机器访问,则需要再添加Gateway yes

Gateway yes

如果需要限制外部访问,可以设置黑(Deny)白(Allow)名单。

Allow       127.0.0.1Deny        0/0

获取Auth

以上配置修改完成后,需要重载或重启cntlm。 具体方法见重载或重启。

$ sudo cntlm -vc /etc/cntlm.conf -M http://baidu.comsection: 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 OKOK (HTTP code: 200)----------------------------[ Profile  1 ]------Auth            NTLMPassNT          7FA051B4B85F0E7EEBB24D3CD73E52B0PassLM          23A1E1A7276E84EA4846D4C9FF957C35------------------------------------------------cntlm: Terminating with 0 active threads

添加Auth到配置

添加以下内容到刚才修改过的/etc/cntlm.conf

Auth            NTLMPassNT          7FA051B4B85F0E7EEBB24D3CD73E52B9PassLM          23A1E1A7276E84EA4846D4C9FF957C31

重载或重启

在使用包管理器安装的情况下,Cntlm默认由systemd来守护,开机自启。

修改配置后,重载即可生效:

sudo systemctl reload cntlm

若仍未生效,可以尝试重启:

sudo systemctl restart cntlm

原文链接:https://note.qidong.name/2018/11/cntlm-proxy/
作者:零壹軒

更多相关文章

  1. SE75 采购申请创建抬头文本
  2. 系统发布用户通知以及相关增强
  3. HCDA 协议配置
  4. CentOS7配置IP和远程连接
  5. 官方博文 | 连老手也容易犯错的Zabbix SNMP该如何正确配置?
  6. Spring Cloud中Hystrix、Ribbon及Feign的熔断关系是什么?
  7. Linux修改Bash配置文件
  8. 使用 Docker 搭建你的Wiki(TiddlyWiki)
  9. jshint在gulp中的使用

随机推荐

  1. Android下获取设备唯一标识(UDID, Device
  2. Android 面试题之基础(不断更新)
  3. Android碰到的问题之一
  4. 隐藏的数字咪咪
  5. android 抖动原理
  6. android利用Handler开启线程和关闭线程
  7. Android(安卓)定制RadioButton样式
  8. Android(安卓)文件下载三种基本方式
  9. as android 打包
  10. Android(安卓)打开Gallery