我最近“剪断了电缆”,将有线互联网(40 Mb/s)降级为 DSL(5 Mb/s)。这很糟糕,但我坚持了一年。我想做的是预先缓存我每天访问的页面(在我的 NAS 上)上的所有内容以及从该页面链接的所有内容。氢例如。我希望网络上的所有设备都能访问相同的缓存(因此请不要使用浏览器插件解决方案)。我希望缓存能够自动清除旧内容(基于年龄、缓存大小等)。我在路由器上使用 Tomato。
我确信我可以弄清楚如何使用自定义 DNS 在 Tomato 中重新路由请求,并且设置一个 python 作业来缓存页面也不会太难,但我确信这会花费我一整天甚至更长时间。
其他网速慢的人肯定也遇到过类似问题。我只是用我使用的搜索词没有找到太多结果。有人知道如何设置这个的教程吗?有人有做过类似事情的经验吗?有没有交钥匙解决方案(商业或非商业)?
我意识到如今静态页面越来越少见了。也许这是徒劳无功的努力。一个更好的例子是预先缓存 reddit 中的图片链接或类似的东西。
这可能违反某些网站的条款/条件,但我只打算每天提出一个请求。
答案1
通常,代理软件也会有缓存结果的选项,例如乌贼(无关联,免费/开源)在 NAS 上运行(或者可能在与 tomato 相同的设备上运行,如果它足够强大的话)可以工作并且几乎是交钥匙的,尽管您需要设置一个脚本来轮询您想要缓存的网站。
您可以使用一些 wget 来进行轮询,如下所述预加载缓存。
然后,您可以设置所有设备以使用该代理服务器,或者您可以让 tomato 使用新的 squid 实例作为透明代理服务器。dd-wrt 的一些说明位于Squid 透明代理对于番茄来说步骤应该类似。
我应该补充一点,对于 HTTPS 网站,这种方法是行不通的(除非进行更广泛的配置)——HTTPS 旨在抵御 MITM 攻击,而代理将充当 MITM——因此通过它传输的流量将被加密,从而使其无法缓存内容——您可以通过向其添加证书,然后将证书安装到 Web 浏览器中来解决这个问题,但这绝对不是一劳永逸的。请注意,有些公司希望监视员工的 HTTPS 流量,以便他们的代理可以查看内容,因此他们确实会这样做。