cntlm
提供解决方案以及一些配置。
遵循的基本步骤是:
- 安装cntlm。
- 在/etc/cntlm.conf中编辑其配置文件,其中包含的注释使其变得很容易。
- 添加一个(或两个)代理服务器。
- 在适当的位置指定您的用户名和NT域名,然后删除密码条目。
启动cntlm服务,例如通过
$ sudo /etc/init.d/cntlm start
cntlm提供了一种方法来测试代理并从您的密码生成哈希(例如,通过命令(以root用户身份))
$ cntlm -I -M http://www.test.com
cntlm将提示您输入域密码。然后,它将针对配置的代理服务器测试不同的身份验证机制。找到有效的方法后,它将打印两行,这些行需要进入其配置文件。
- 停止cntlm服务器,并将在步骤6中获得的行添加到中
/etc/cntlm.conf
。
- 重启cntlm
现在cntlm
正在运行,可以使用了。许多地方可以用来配置各种程序以使用它。 cntlm
然后将透明地将NT域身份验证令牌添加到传出数据包,并将其转发到已配置的代理服务器。
使用Qt / KDE
对于Qt / KDE本机应用程序,在KDE系统设置 -> 网络设置 -> 代理设置中指定“使用手动配置的代理服务器” 。代理http://localhost
与端口3128一起指定(cntlm
除非更改,否则为默认端口)。这些应用程序将使用新设置进行动态更新,并且无需重新启动或注销/登录即可更新设置。
Dropbox和Google客户
许多应用程序可以使用Shell环境变量。这里值得注意的是Dropbox和Google Earth客户端。对于这些应用程序,请使用以下shell环境变量:
no_proxy=localhost,127.0.0.0/8,*.local
NO_PROXY=localhost,127.0.0.0/8,*.local
all_proxy=socks://localhost:3128/
ALL_PROXY=socks://localhost:3128
http_proxy=http://localhost:3128
HTTP_PROXY=http://localhost:3128
ftp_proxy=http://localhost:3128
FTP_PROXY=http://localhost:3128
https_proxy=http://localhost:3128
HTTPS_PROXY=http://localhost:3128
s3cmd,卷曲和wget
注意:某些应用程序将仅使用小写名称,其他应用程序仅使用大写名称,某些应用程序将首先尝试一个,然后再尝试另一个。
s3cmd
(Amazon S3客户端),curl
还wget
可以根据需要通过自己的配置文件进行配置。这很方便,因为他们在每次调用时都会读取自己的配置文件。由于这些程序通常是短暂的(完成下载后只有一个调用),因此非常有用。
s3cmd
in 的格式为~/.s3cfg
:
proxy_host = localhost
proxy_port = 3128
wget的格式为~/.wgetrc
:
https_proxy = http://localhost:3128
http_proxy = http://localhost:3128
ftp_proxy = http://localhost:3128
curl
in 的格式为~/.curlrc
:
proxy = localhost:3128
另一方面,编辑外壳程序概要文件或其他环境配置文件通常需要重新启动,注销和后退或类似操作。这是值得研究/etc/environment
,~/.pam_environment
,~/.kde/env/proxy.sh
等,因为这些都是标准的地方设置通过shell环境变量配置代理服务器设置,特别是影响系统上的所有用户和服务。
我也了解,可以使用每个应用程序各自的.desktop
文件来更改环境设置,但尚未(成功)尝试过。
虚拟盒子
可以将VirtualBox配置为使用其GUI或以下命令来使用代理(例如,检查和下载软件更新):
$ VBoxManage setextradata global GUI/ProxySettings \
"proxyEnabled,localhost,3128,authDisabled,,"
为了完整起见,要禁用它,请使用:
$ VBoxManage setextradata global GUI/ProxySettings \
"proxyDisabled,,,authDisabled,,"
火狐浏览器
对于Firefox,我使用QuickProxy插件。Firefox本身(如果已手动配置为使用本地计算机上的代理服务器),因此QuickProxy仅启用/禁用该设置。
易于
APT(由突触,μon和朋友在后台使用)使用中的配置文件/etc/apt/apt.conf.d/
,例如00proxy
,使用以下行来启用APT代理:
Acquire::http::Proxy "http://localhost:3128";
#Acquire::ftp::proxy "ftp://localhost:3128/";
#Acquire::https::proxy "https://localhost:3128/";
注意:add-apt-repository使用根配置文件,或者您可以将sudo配置为允许所有http * _proxy设置通过。
统治所有人的脚本
FWIW我现在正在编写模块化脚本以启用/禁用许多程序的代理程序。到目前为止,我已经编写了以下模块:
$ ls -lF proxymanager/modules/
total 60
-rwxr-xr-x 1 root root 919 Oct 8 17:27 apt*
-rwxr-xr-x 1 root root 1037 Oct 8 13:10 bashrc*
-rwxr-xr-x 1 root root 391 Oct 8 12:18 cntlm*
-rwxr-xr-x 1 root root 684 Oct 8 12:58 curl*
-rwxr-xr-x 1 root root 609 Oct 8 13:02 dropbox*
-rwxr-xr-x 1 root root 672 Oct 8 12:18 gnome*
-rwxr-xr-x 1 root root 691 Oct 8 12:18 kde*
-rwxr-xr-x 1 root root 689 Oct 8 13:03 root_bashrc*
-rwxr-xr-x 1 root root 691 Oct 8 13:03 root_curl*
-rwxr-xr-x 1 root root 827 Oct 8 13:03 s3cmd*
-rwxr-xr-x 1 root root 454 Oct 8 13:03 survive_reboot*
-rwxr-xr-x 1 root root 860 Oct 8 13:06 suse-sysproxy*
-rwxr-xr-x 1 root root 653 Oct 8 12:46 sysenvironment*
-rwxr-xr-x 1 root root 465 Oct 8 13:04 virtualbox*
-rwxr-xr-x 1 root root 573 Oct 8 13:04 wgetrc*
以及控制应用程序。希望这些将很快移至github或其他在线主页中。