IP blocker for Xray panels when connection limits are exceeded. Features webhook integration for external moderation.
Unlike simple blockers, this waits for webhook response before taking action:
Violation → Webhook → Wait for response → Take action
↓
{"action": "ban"} or {"action": "ignore"}
Standalone (with config.yaml):
./iplimit-blocker -config config.yamlIntegrated with 3x-ui (via ENV):
export XUI_IP_WEBHOOK_ENABLE=true
export XUI_IP_WEBHOOK_URL=https://your-api.com/webhook
./iplimit-blocker| 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 |
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"}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 |
Запрос:
{
"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 .- iptables or nftables
- conntrack (for terminating existing connections / для разрыва соединений)