Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xray-iplimit-blocker

English | Русский


English

IP blocker for Xray panels when connection limits are exceeded. Features webhook integration for external moderation.

Key Feature

Unlike simple blockers, this waits for webhook response before taking action:

Violation → Webhook → Wait for response → Take action
                              ↓
           {"action": "ban"} or {"action": "ignore"}

Usage

Standalone (with config.yaml):

./iplimit-blocker -config config.yaml

Integrated with 3x-ui (via ENV):

export XUI_IP_WEBHOOK_ENABLE=true
export XUI_IP_WEBHOOK_URL=https://your-api.com/webhook
./iplimit-blocker

Environment Variables

Variable Description Default
XUI_IP_WEBHOOK_ENABLE Enable webhook false
XUI_IP_WEBHOOK_URL Webhook URL -
XUI_IP_WAIT_WEBHOOK Wait for response true
XUI_IP_WEBHOOK_TIMEOUT Timeout (seconds) 5
XUI_IP_DEFAULT_ACTION Default: ban, ignore, warn ban
XUI_FAIL2BAN_BANTIME Block duration (minutes) 30
IPLIMIT_LOG_FILE Path to violation log /var/log/3xipl.log
IPLIMIT_BLOCK_MODE iptables or nft iptables

Webhook API

Request:

{
  "event": "ip_limit_exceeded",
  "client": {"email": "user@email"},
  "violation": {"ip": "1.2.3.4", "reason": "ip_limit", "timestamp": "..."},
  "server": "hostname"
}

Response:

{"action": "ban", "duration": 1800}
{"action": "ignore"}
{"action": "warn"}

Build

go build -o iplimit-blocker .

Русский

Блокировщик IP при превышении лимитов для Xray-панелей с поддержкой webhook-модерации.

Главная особенность

В отличие от простых блокировщиков, ждёт ответ от webhook перед действием:

Нарушение → Webhook → Ждём ответ → Действуем
                           ↓
          {"action": "ban"} или {"action": "ignore"}

Использование

Standalone (с config.yaml):

./iplimit-blocker -config config.yaml

Интегрировано с 3x-ui (через ENV):

export XUI_IP_WEBHOOK_ENABLE=true
export XUI_IP_WEBHOOK_URL=https://your-api.com/webhook
./iplimit-blocker

Переменные окружения

Переменная Описание По умолчанию
XUI_IP_WEBHOOK_ENABLE Включить webhook false
XUI_IP_WEBHOOK_URL URL webhook -
XUI_IP_WAIT_WEBHOOK Ждать ответ true
XUI_IP_WEBHOOK_TIMEOUT Таймаут (секунды) 5
XUI_IP_DEFAULT_ACTION Действие: ban, ignore, warn ban
XUI_FAIL2BAN_BANTIME Длительность бана (минуты) 30
IPLIMIT_LOG_FILE Путь к логу нарушений /var/log/3xipl.log
IPLIMIT_BLOCK_MODE iptables или nft iptables

Webhook API

Запрос:

{
  "event": "ip_limit_exceeded",
  "client": {"email": "user@email"},
  "violation": {"ip": "1.2.3.4", "reason": "ip_limit", "timestamp": "..."},
  "server": "hostname"
}

Ответ:

{"action": "ban", "duration": 1800}
{"action": "ignore"}
{"action": "warn"}

Сборка

go build -o iplimit-blocker .

Requirements / Требования

  • iptables or nftables
  • conntrack (for terminating existing connections / для разрыва соединений)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages