所以我的目标是阻止只有某些YouTube频道。
如果我做:
acl block_youtube dstdomain .youtube.com http_access deny block_youtube
它阻止对YouTube的任何访问。
如果我做:
acl block_youtube url_regex -i ^https://www.youtube.com/watch\?v=v2AC41dglnM http_access deny block_youtube
它不会阻止那个特定的页面,即使我在access_log中看到这个。
475862685.876 0 100.100.100.100 TAG_NONE/200 0 CONNECT www.youtube.com:443 - HIER_NONE/- - 1475862686.359 412 100.100.100.100 TCP_MISS/200 51182 GET https://www.youtube.com/watch\?v=v2AC41dglnM - HIER_DIRECT/216.58.192.238 application/json
任何人有任何想法如何解决这个问题?
由于您尝试阻止的YouTube是HTTPS,因此您遇到问题。 该代理不会对HTTPS进行解封装以了解URL和内容,因此可以删除该连接。 要解决您的问题,您必须看到Squid的SSL Bump解决scheme。 由于许可问题,默认情况下不启用,但可以轻松地重新编译软件包。 这个解决scheme的问题是客户端必须知道代理中使用的authentication的权限,并且该权限是本地的,并且允许为所有https站点创build证书。 所以你需要在所有PC上部署autority。