我刚刚在我的服务器上安装了 ubuntu 18.4。由于我们位于防火墙后面,所以我需要一个代理。Linux 和我公司的代理不能一起工作,因此我在一台计算机上安装了 cntlm。此服务对我们公司的代理进行了适当的身份验证。然后我尝试从我的服务器获取此 cntlm-proxy。
假设用户 = MyUser,密码 = MyPassword,域是 MyDomain。172.24.213.55 是具有 cntlm 服务的计算机。
我bash.bashrc
添加了以下几行:
#set proxy
function setproxy(){
export {http,https,ftp}_proxy="http://MyDomain\\MyUser:[email protected]:3128/"
}
#unset proxy
function unsetproxy() {
unset {http,https,ftp}_proxy
}
我重启然后运行 setproxy。但是当我运行 sudo apt-get update 时,
我明白了
407 Proxy Authentification Required [IP: 172.24.213.55 3128].
作为新手,我找不到原因。我更改了、、/etc/profile
(此处为)等等。/etc/environment
/etc/apt/apt.conf
acquire::http::proxy
95proxies
有任何想法吗?
答案1
如果您使用具有 CNTLM 身份验证的代理,则需要正确配置 CNTLM 守护程序。
首先在文件中设置正确的域和用户名/etc/cntlm.conf
:
#
# 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 domainusername
Domain domainname
# List of parent proxies to use. More proxies can be defined
# one per line in format <proxy_ip>:<proxy_port>
Proxy 123.123.123.123:1234
然后运行cntlm -H
并输入你的域密码:
$ cntlm -H
Password:
PassLM XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PassNT XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PassNTLMv2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXX # Only for user ' domainusername ', domain ' domainname '
将输出(从 PassLM 到 PassNTLMv2)添加到文件/etc/cntlm.conf
并重新启动 CNTLM 守护程序。
然后您可以添加export http_proxy=http://localhost:3128
到您的 bash 配置中。
答案2
非常感谢。在没有连接到互联网的情况下,我尝试使用在 Windows 客户端上运行的 cntlm 服务,并尝试从我的 ubuntu 服务器处理此服务。这没有用。我确实在其他地方下载了 cntlm,然后直接将其安装在 ubuntu 服务器上。使用您的解释,在重新启动系统后,它终于起作用了。