用 Squid maxconn 统计连接数
把 maxconn 当作按来源统计连接数的条件,而不是设备数或已认证用户数。
maxconn 5 并不是为代理准备的“五台设备”许可。它是绑定到客户端来源地址的连接数条件。
一小段规则看起来是这样的:
acl over_connection_limit maxconn 5
http_access deny over_connection_limit
Squid 文档中的匹配含义是“大于”所给的值。deny 规则才会消费这个条件;只声明 ACL 并不会拒绝任何请求。请把它放在会更早放行目标请求的宽泛规则之前。
在这个片段周围保留正常的授权策略。它不是一份完整的访问配置。该 ACL 还依赖 Squid 的客户端数据库处于启用状态;在想让它生效之前,先检查 client_db。
一台设备可以打开很多连接。 NAT 后面的多台设备可能表现为同一个来源地址。一台共用机器可以为多个用户服务,而一台安静的设备在你统计的那一刻可能一条连接都没有。这些关系都不是一一对应的。
如果真正的需求是对具名账户、已登记设备或活动会话设限,就明确地定义那种身份及其生命周期。按来源的套接字阈值可以保护容量,但它的数字应当被描述为连接,而不是人或设备。