Linux支持代理PAC文件

我的公司环境设置了阻止外部互联网访问的代理,并要求NTLM身份validation。 内部地址不会被路由成代理服务器,必须直接访问。

我试图在这个环境(通常是Windows)中安装一台Linux机器,并且有需要外部互联网访问的命令行工具。 我发现NTLMaps对于代理的身份validation非常有用 – 但是现在的问题是当我设置Linux的HTTP_PROXY环境variables,许多程序使用它来确定代理时,他们总是使用代理服务器。 相反,我需要他们使用基于PAC文件的代理/ DIRECT连接。

非常非常手动的解决scheme是当我想访问内部networking时清除HTTP_PROXY环境variables,并在我想访问Internet时填写它 – 但这是一个痛苦。

任何人都知道如何做到这一点? (Linux全局.pac设置等)

在Windows上支持代理自动configuration似乎是“无缝的”,因为它是由WinHTTP客户端实现的,该客户端存储在一个可以通过公共API访问所有应用程序的DLL中。 许多应用程序使用WinHTTP并获得代理自动configuration“免费”。

在Linux世界中,每个应用程序通常都会自己进行套接字调用,并使用自己的HTTP协议实现。 这里有一些HTTP库,但与Windows相比,更有可能的是,应用程序将自行处理HTTP,可能不会有处理代理自动configuration文件所需的Javascript解释器。

您可以考虑在Linux计算机上运行本地代理服务器,将其自身指定为系统中的HTTP_PROXY,然后使用必要的规则configuration该本地代理服务器,以直接访问某些站点,而不是将公司代理作为父项。

鱿鱼可以做你想做的,但它相当重量级。 我刚刚发现这个有趣的tinyproxy项目 ,它当然看起来很有前途(允许域的上游代理select性使用,非常轻量级等),但我从来没有使用过它,一无所知。 (理论上,可以修改tinyproxy来实际parsing代理自动configuration文件,这将是一个非常巧妙的技巧,虽然不是我有时间工作的东西…)