![Linux 网关作为像 IPCop 一样的下载加速器](https://linux22.com/image/74169/Linux%20%E7%BD%91%E5%85%B3%E4%BD%9C%E4%B8%BA%E5%83%8F%20IPCop%20%E4%B8%80%E6%A0%B7%E7%9A%84%E4%B8%8B%E8%BD%BD%E5%8A%A0%E9%80%9F%E5%99%A8.png)
我们在网络内的 Linux 机器上运行 dnsmasq 以获取 DHCP 和 DNS。我想添加一个像 IPCop 一样的下载加速器(http://blockouttraffic.de/ua_index.php)但没有 IPCop,因为我们已经有防火墙了。我研究过 polipo 和鱿鱼,但据我所知,这些只是浏览器代理。我们想要缓存的是:
- Mac 操作系统更新
- Mac 版 Office 更新
- 易于
- Windows 更新
- 其他 HTTP/HTTPS 下载,例如 ISO 文件等。
由于运行 dnsmasq 的 linux 盒子已经是其他计算机用来连接到互联网的网关,我认为一定可以以某种方式添加缓存。
有谁知道这个问题的解决方案?
答案1
我不了解 Mac OS、Office 和 Windows 更新。
Apt 可以通过 HTTP 代理进行访问,这会加快速度。然而,使用像squid这样的代理不会缓存deb文件,而是缓存URI。也就是说,如果您从不同的存储库下载相同的 .deb,它不会有任何好处。使用像 approx 这样的特定于 apt 的代理是一个更好的解决方案,并且效果非常好。
HTTP 很简单,squid 会用它发挥魔法。
您最大的“问题”是 HTTPS 和所有使用 SSL 的内容。根据定义,SSL 的存在使您无法遭受中间人攻击和网络流量嗅探。不幸的是,这与您想要做的完全相反:您正在寻找位于两个端点之间的东西,并检查流量,提供缓存的对象。
因此,根据定义,您不能使用 SSL 流量的代理,除非您对其进行黑客攻击。您唯一的解决方案是特定于服务的解决方案,例如approx,它不能用作代理。
如果您想知道 HTTPS 代理如何工作:它们不缓存。 HTTPS 使用简单的 CONNECT 命令,实际上通过代理传输流量。原因是流量已加密,并且远程端使用其 SSL 证书和密钥进行验证,而代理不具备这些证书和密钥。