Traefik 外掛

攔截機械人與 VPN 的 Traefik 外掛

機械人、Tor、VPN 和代理,每個路由只需一個標籤即可偵測。預設以 Monitor 模式運行,切換前不會攔截任何請求。

免費,MIT 授權已在 Traefik v3.7 上測試

流量類別

偵測內容

每位訪客都會被歸入一個類別,您的服務透過 X-IPScanner-Class 收到它。

  • 真人
  • 已驗證機械人
  • VPN
  • 隱私中繼
  • 主機託管
  • 代理
  • Tor
  • AI 代理
  • 惡意自動化

安裝

四個步驟,先用 Monitor 模式

  1. 1

    建立 API 金鑰

    將其放入 Traefik 容器的環境變數。所有 ipscanner 中介軟體都會讀取它。

    建立免費 API 金鑰
    docker-compose.yml
    environment:
      IPSCANNER_API_KEY: pk_live_...
  2. 2

    宣告外掛

    寫入靜態設定,或使用兩個 CLI 參數,然後重新啟動 Traefik。

    traefik.yml
    experimental:
      plugins:
        ipscanner:
          moduleName: github.com/ipscanner/ipscanner-traefik
          version: v0.1.0
  3. 3

    新增網站並設定 siteId

    模式和策略隨後由控制台提供,無需重新載入。

    在控制台中新增網站
    labels
    traefik.http.middlewares.ipscanner.plugin.ipscanner.siteId=site_...
  4. 4

    掛到路由上

    其他路由可透過 ipscanner@docker 重用它。

    labels
    traefik.http.routers.app.middlewares=ipscanner

您的技術堆疊

Coolify、Compose 或 Kubernetes

無論 Traefik 從何處讀取設定,都是同一個外掛。

Servers › 您的伺服器 › Proxy
command:
  # ...the flags Coolify set
  - '--experimental.plugins.ipscanner.modulename=github.com/ipscanner/ipscanner-traefik'
  - '--experimental.plugins.ipscanner.version=v0.1.0'
environment:
  - IPSCANNER_API_KEY=pk_live_...
您的應用程式 › Configuration › Container Labels
traefik.http.middlewares.ipscanner-myapp.plugin.ipscanner.siteId=site_...
traefik.http.routers.https-0-<uuid>.middlewares=gzip,ipscanner-myapp

每個應用程式使用一個獨立的中介軟體名稱,並加入 Coolify 產生的每個路由。如網站位於 Cloudflare 之後,亦需設定 trustedProxies=cloudflare 和 ipHeaders=CF-Connecting-IP。

網站控制台

無需改動 Traefik 即可修改策略

在控制台中為每個類別選擇允許、標記或攔截。中介軟體會在 30 秒內套用變更。

  • 經過驗證的搜尋引擎和 AI 爬蟲一律放行。
  • Monitor 模式不會攔截任何請求,只顯示原應攔截的內容。
  • IPScanner 在 1.5 秒內未有回應時,請求照常通過。

選項

中介軟體選項

在中介軟體上設定:透過標籤、YAML 或 CRD。

選項預設值
siteId控制台中的網站,模式和策略由它決定空
mode未設定 siteId 時使用 monitor 或 enforcemonitor
blockClasses未設定 siteId 時 enforce 模式下攔截的類別malicious_automation
trustedProxies可信任其 IP 標頭的代理:CIDR、private、cloudflare空
ipHeaders按順序從可信代理讀取的標頭X-Forwarded-For
timeout單次偵測的時限,逾時後請求放行1500ms
cacheTTL每位訪客的判定快取10m
cacheSize快取中保留的訪客數目10000
policyTTL已取得策略的有效時間30s
skipPaths略過偵測的路徑正規表示式靜態資源
apiKeyFile存放 API 金鑰的檔案,用於 Secret空
debug在回應中加入標頭並記錄每次判定false

常見問題

Traefik 外掛常見問題

每位訪客最多每 10 分鐘偵測一次,判定結果快取於記憶體,其後的請求不會再呼叫 API。單次偵測時限為 1.5 秒,逾時後請求放行。

從 Monitor 模式開始

加入中介軟體,在控制台觀察一星期流量,再開始攔截。