首页 Linux网维 Linux下安装配置Cntlm代理

Linux下安装配置Cntlm代理

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

Linux下安装配置Cntlm代理插图

有些公司,上网有限制,却没有统一配置网关和路由,只是提供了上外网的代理。 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    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

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

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

Gateway yes

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

Allow       127.0.0.1
Deny        0/0

获取Auth

以上配置修改完成后,需要重载或重启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

添加Auth到配置

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

Auth            NTLM
PassNT          7FA051B4B85F0E7EEBB24D3CD73E52B9
PassLM          23A1E1A7276E84EA4846D4C9FF957C31

重载或重启

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

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

sudo systemctl reload cntlm

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

sudo systemctl restart cntlm
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: 3182235786a

为您推荐

linux文件命令

linux文件命令

在 Linux 中,我们可以使用 `with open()` 语句和 `write()` 函数来写入文件。以下是一个简单...
linux的命令

linux的命令

以下是一个简单的 Linux 命令示例,该命令将显示当前日期和时间: “`c #include <st...
linux 命令

linux 命令

由于 Linux 命令是由 C 语言编写的,因此下面是一个简单的用中文编写的 Linux 命令示例,它将输出“Hello...
linux命令tar

linux命令tar

这个问题看起来有些模糊,我不确定您是想了解如何在 Linux 系统中使用 tar 命令,还是如何编写一个名为 tar 的...
linux压缩命令

linux压缩命令

Linux压缩命令:高效管理文件和目录 Linux操作系统提供了一系列强大的压缩命令,使您能够高效地管理文件和目录。无论...

发表回复

返回顶部