限流为0时对非白名单IP的首次访问无效 #50

Closed
opened 2025-08-01 04:28:13 +08:00 by RedwindA · 0 comments
RedwindA commented 2025-08-01 04:28:13 +08:00 (Migrated from github.com)

配置文件

[rateLimit]
# 每个IP每周期允许的请求数(注意Docker镜像会有多个层,会消耗多个次数)
requestLimit = 0
# 限流周期(小时)
periodHours = 3.0

[security]
# IP白名单,支持单个IP或IP段
# 白名单中的IP不受限流限制
whiteList = [
    "127.0.0.1",
    "172.17.0.0/16",
    "192.168.1.0/24",
    "8.13.XXXXX/32"
]

# IP黑名单,支持单个IP或IP段
# 黑名单中的IP将被直接拒绝访问
blackList = [
    "192.168.100.1",
    "192.168.100.0/24"
]

容器日志

🚀 HubProxy 启动成功
📡 监听地址: 0.0.0.0:5000
⚡ 限流配置: 0请求/3小时
🔗 项目地址: https://github.com/sky22333/hubproxy
请求IP: 8.13.XXXXX (提纯后: 8.13.XXXXX), X-Forwarded-For: 8.13.XXXXX, X-Real-IP:  8.13.XXXXX
[GIN] 2025/07/31 - 20:20:48 | 200 |  154.136455ms |   8.13.XXXXX | GET      "/https://raw.githubusercontent.com/sky22333/hubproxy/main/src/utils/ratelimiter.go"
请求IP: 47.93.XXXXX (提纯后: 47.93.XXXXX), X-Forwarded-For: 47.93.XXXXX, X-Real-IP: 47.93.XXXXX
[GIN] 2025/07/31 - 20:22:57 | 200 |   10.268372ms |   47.93.XXXXX | GET      "/https://raw.githubusercontent.com/sky22333/hubproxy/main/src/utils/ratelimiter.go"

注意到47.93.XXXXX并不在白名单中,但仍然请求成功。应该是因为令牌桶在初始化时就自带了一个令牌。即使后续不再生成新的令牌(速率为0),这第一个令牌也足以让首次访问成功

配置文件 ``` [rateLimit] # 每个IP每周期允许的请求数(注意Docker镜像会有多个层,会消耗多个次数) requestLimit = 0 # 限流周期(小时) periodHours = 3.0 [security] # IP白名单,支持单个IP或IP段 # 白名单中的IP不受限流限制 whiteList = [ "127.0.0.1", "172.17.0.0/16", "192.168.1.0/24", "8.13.XXXXX/32" ] # IP黑名单,支持单个IP或IP段 # 黑名单中的IP将被直接拒绝访问 blackList = [ "192.168.100.1", "192.168.100.0/24" ] ``` 容器日志 ``` 🚀 HubProxy 启动成功 📡 监听地址: 0.0.0.0:5000 ⚡ 限流配置: 0请求/3小时 🔗 项目地址: https://github.com/sky22333/hubproxy 请求IP: 8.13.XXXXX (提纯后: 8.13.XXXXX), X-Forwarded-For: 8.13.XXXXX, X-Real-IP: 8.13.XXXXX [GIN] 2025/07/31 - 20:20:48 | 200 | 154.136455ms | 8.13.XXXXX | GET "/https://raw.githubusercontent.com/sky22333/hubproxy/main/src/utils/ratelimiter.go" 请求IP: 47.93.XXXXX (提纯后: 47.93.XXXXX), X-Forwarded-For: 47.93.XXXXX, X-Real-IP: 47.93.XXXXX [GIN] 2025/07/31 - 20:22:57 | 200 | 10.268372ms | 47.93.XXXXX | GET "/https://raw.githubusercontent.com/sky22333/hubproxy/main/src/utils/ratelimiter.go" ``` 注意到47.93.XXXXX并不在白名单中,但仍然请求成功。应该是因为令牌桶在初始化时就自带了一个令牌。即使后续不再生成新的令牌(速率为0),这第一个令牌也足以让首次访问成功
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: 3344/hubproxy#50