Caddy 模組
在網站區塊中加入一條 ipscanner 指令,每位訪客都會在 reverse_proxy 之前接受檢測。預設以 Monitor 模式運行,切換前不會攔截任何請求。
免費,MIT 授權Caddy 2.8+
存取記錄
流量類別
每位訪客對應一個類別。可在控制台中攔截某個類別,亦可寫入 block_classes。
安裝
export IPSCANNER_API_KEY=<your API key>使用 xcaddy 或在 Docker 中建置。需要 Caddy 2.8 或更新版本。
xcaddy build --with github.com/ipscanner/ipscanner-caddy
./caddy list-modules | grep ipscannerSite ID
site_4fQ8nZ2kLm7xR1vT9cBw
無需全域 order 行:它在 basic_auth 和 reverse_proxy 之前運行。
example.com {
ipscanner {
site_id site_4fQ8nZ2kLm7xR1vT9cBw
}
reverse_proxy localhost:8080
}不使用網站
在設定中指定模式和要攔截的類別。ipscanner /app/* 一類的匹配器可將檢測限於部分路徑。
example.com {
ipscanner {
mode enforce
block_classes malicious_automation tor
}
reverse_proxy localhost:8080
}佔位符
由指令設定,可用於 log_append、vars 匹配器和請求標頭。
| 佔位符 | 取值 |
|---|---|
{http.vars.ipscanner.status}ok, error, timeout, backoff, skipped | ok, error, timeout, backoff, skipped |
{http.vars.ipscanner.class}流量類別,狀態為 ok 時設定 | 流量類別,狀態為 ok 時設定 |
{http.vars.ipscanner.action}allow, flag, block, would_flag, would_block | allow, flag, block, would_flag, would_block |
log_append ipscanner_class {http.vars.ipscanner.class}
log_append ipscanner_action {http.vars.ipscanner.action}
@flagged vars ipscanner.action flag
request_header @flagged X-Review 1用戶端 IP
模組檢測 Caddy 解析出的用戶端 IP。請信任您的代理,trusted_proxies_strict 可防止訪客偽造中間節點。
{
servers {
trusted_proxies static 10.0.0.0/8
trusted_proxies_strict
}
}設定
全部為可選項。JSON 設定使用相同名稱。
| 子指令 | 預設值 | 作用 |
|---|---|---|
api_keyAPI 金鑰。未設定時所有請求放行。 | {env.IPSCANNER_API_KEY} | API 金鑰。未設定時所有請求放行。 |
site_id控制台中的網站,決定模式和政策。 | 空 | 控制台中的網站,決定模式和政策。 |
modemonitor 或 enforce。設定網站後僅 monitor 生效。 | monitor | monitor 或 enforce。設定網站後僅 monitor 生效。 |
block_classes未設定網站時,Enforce 模式下攔截的類別。 | malicious_automation | 未設定網站時,Enforce 模式下攔截的類別。 |
timeout單次檢測的時間上限。 | 1.5s | 單次檢測的時間上限。 |
cache_ttl每位訪客的判定快取時間。 | 10m | 每位訪客的判定快取時間。 |
cache_size判定快取項目數。 | 10000 | 判定快取項目數。 |
policy_ttl網站政策的快取時間。 | 30s | 網站政策的快取時間。 |
skip_paths不檢測的路徑(正規表示式)。 | 靜態資源 | 不檢測的路徑(正規表示式)。 |
block_message403 頁面的文字。 | Blocked by IPScanner edge guard. | 403 頁面的文字。 |
debug除錯回應標頭,並為每次判定記錄一行。 | 關閉 | 除錯回應標頭,並為每次判定記錄一行。 |
api_urlAPI 基本 URL。 | https://ipscanner.io | API 基本 URL。 |
一律放行
skip_paths 中的路徑。常見問題