You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Squid配置url_regex规则无法拦截URL中含指定关键词访问的问题

Squid URL关键词拦截不生效解决方案

你当前配置的规则仅能拦截域名中含有关键词的HTTPS站点,无法匹配路径中关键词的核心原因是:Squid默认不对HTTPS流量做解密的情况下,仅能获取CONNECT请求中的域名信息,无法读取加密隧道内的完整URL路径、查询参数内容。samsung.com域名本身包含samsung关键词所以能被拦截,而亚马逊链接的samsung关键词存在于路径中,未解密时Squid无法识别。

要实现全URL关键词匹配,推荐按以下步骤配置:

方案1:开启SSL Bump(HTTPS流量解密,推荐)

该方案可以让Squid读取HTTPS请求的完整URL内容,是实现需求的唯一彻底方案。

  1. 生成Squid中间人解密用的根证书
    openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -keyout /etc/squid/squidCA.key -out /etc/squid/squidCA.crt
    
    生成后将/etc/squid/squidCA.crt部署到所有接入代理的客户端的受信任根证书存储中,避免HTTPS站点访问时报证书错误。
  2. 修改squid.conf添加SSL Bump配置
    找到你现有http_port配置行,替换为以下内容:
    http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/squidCA.crt key=/etc/squid/squidCA.key
    ssl_bump stare all
    ssl_bump bump all
    
  3. 保持你现有ACL规则不变即可,解密后会自动匹配全URL内容
    你原本的规则已经符合要求,不需要修改:
    acl denykey url_regex -i  "/etc/squid/deny-keywords.squid"
    http_access deny denykey
    
  4. 验证配置并重载Squid生效
    squid -k parse
    squid -k reconfigure
    

方案2:无SSL解密的替代方案(不推荐)

如果无法在客户端部署根证书开启解密,只能实现域名层面的关键词匹配,无法拦截路径中带关键词的请求,配置如下:

acl denykey dstdomain_regex -i  "/etc/squid/deny-keywords.squid"
http_access deny denykey

注意:开启SSL Bump需要符合所在地区的网络监管要求,且仅可对授权管理的客户端使用。

内容的提问来源于stack exchange,提问作者Kash。

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:21:02