目的
通过在 windows 侧设置 cntlm 代理,使得 linux 服务器可以访问外网。
一、windows 侧操作
1、下载安装 cntlm 文件,安装压缩包见附件,建议安装在默认路径。
2、打开安装目录下的配置文件 cntlm.ini 修改配置,需要修改的地方如下:
Username s00******
Domain china
#Password password
Proxy proxy.******.com:8080
Gateway yes
说明:
1)Username 填自己的域账号,Domain 填 china,Password 可不填,注释掉即可。
2)Proxy格式 <proxy_ip>:<proxy_port>,proxy_ip 是 proxyhk.******.com 对应的 IP 地址,proxy_port 是 8080,也可以直接写 proxyhk.******.com:8080。
3)Gateway 这一行前面的注释要去掉,否则无法在别的机器上通过代理访问大网。
3、打开cmd,切换到安装目录 C:\Program Files (x86)\Cntlm
下,输入命令 cntlm.exe -H
,再输入域账户对应的密码,如下所示:
C:\Program Files (x86)\Cntlm>cntlm.exe -H
0 [main] cntlm 7900 find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer. Please report this problem to
the public mailing list cygwin@cygwin.com
cygwin warning:
MS-DOS style path detected: C:\Program Files (x86)\Cntlm\cntlm.ini
Preferred POSIX equivalent is: /Cntlm/cntlm.ini
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Password:
PassLM 697F0524734******2924B00E6E
PassNT 3145356B342******810325E890
PassNTLMv2 351D03AAF39******0D639306EC6E7D # Only for user 's00******', domain 'china'
C:\Program Files (x86)\Cntlm>
将得到的 PassLM 和 PassNT 复制粘贴到配置文件 cntlm.ini 中对应位置,PassNTLMv2不需要,可注释掉也可以不填。
4、取消 Auth 前的注释,并将 LM 修改为 NTLM,这一点尤为重要!因为我司代理服务器采用 NTLM 认证,但好多帖子完全没有提到这个,这也是我试了好多遍都不成功的原因。
5、在开始菜单中重启 cntlm 服务,以管理员身份运行,先 stop 再 start。
Cntlm->Stop Cntlm Autentication Proxy
Cntlm->Start Cntlm Autentication Proxy
二、虚拟机侧操作
1、输入命令 vim /root/.bashrc
,打开设置全局代理的文件,在文件末尾添加:
export http_proxy="http://50.64.188.62:3128"
export https_proxy=${http_proxy}
export ftp_proxy=${http_proxy}
上面的 50.64.188.62 是本机的 ip 地址。
如果需要取消代理:
unset http_proxy
unset https_proxy
unset ftp_proxy
2、输入命令 source /root/.bashrc
使修改生效。
3、至此,代理配置完毕。输入 wget www.baidu.com 测试是否成功。
4、如果需要在服务器上拉取外网的 docker 镜像,除了上面的动作之外,还需要修改 docker.service 的配置:
文件地址:/usr/lib/systemd/system/docker.service
修改方式:
[Service]
Environment=https_proxy=http://50.64.188.62:3128
Environment=http_proxy=http://50.64.188.62:3128
修改完成之后重启 docker 服务(systemctl daemon-reload && systemctl restart docker)