- remove Java plugins (velocity/paper), dashboard, all MC-specific code
(handshake, death_code, varint, hostname-HMAC); available in history pre-v0.2
- merge crates/* into one package with src/bin/{rampart,rampart-manager,rampart-cli}
- ProtocolHandler trait + registry (no implementations yet), universal PoW kept
- XDP: universal L3/L4 filter (xdp/core/) + pluggable hook API (xdp/hooks/),
fix IPv6 saddr bug; clang build verified
- docs: bilingual knowledge base (docs/kb/: attacks x4, defense-levels,
practice x3), rewrite README/architecture for universal concept
- TODO.md v4.0: <=300-line module limit, competitor benchmark section (ref/)
- deploy/CI/docs cleanup: no MC references, new binary names
cargo build/clippy(-D warnings)/test green (55 tests)
3.8 KiB
3.8 KiB
Troubleshooting - FAQ и диагностика
Edge нода
"XDP не загружается"
systemd-detect-virt # openvz/lxc → XDP не работает, нужен KVM
uname -r # нужно 5.10+
dpkg -l | grep libbpf # libbpf-dev нужен при сборке
journalctl -u rampart | grep -i "xdp\|ebpf\|bpf"
# Проверить компиляцию BPF-программы вручную:
clang -O2 -g -target bpf -c xdp/core/universal_filter.c -o /tmp/uf.o
# Не помогло — отключи XDP в config.toml ([xdp] enabled = false) и рестарт.
"Rate limit блокирует реальных клиентов"
# Смотрим метрики
curl -s http://EDGE_IP:9090/metrics | grep rate_limit
# Клиенты за NAT (один IP — много людей) → увеличь лимиты в config.toml:
# [limits] max_connections_per_ip = 50
# Или добавь их адрес в whitelist (только IP), рестарт.
"Высокое CPU на edge ноде"
top -p $(pgrep rampart)
perf top -p $(pgrep rampart)
# Частые причины:
# 1. Много мусорных коннектов в userspace → включи XDP ([xdp] enabled = true)
# 2. Заниженные rate limit → соединения постоянно рвутся и пересоздаются
# 3. Не хватает воркеров → [workers] count = числу vCPU
"Edge не стартует: no protocol plugins compiled"
Реестр протоколов пуст: rampart требует хотя бы один ProtocolHandler
(feature protocol-http или внешний крейт-плагин). Пока плагинов нет,
edge запускается только в исследовательских целях. См. src/bin/rampart.rs.
Manager
"Manager не стартует: JWT_SECRET must be set"
export JWT_SECRET="$(openssl rand -hex 32)" # минимум 32 байта
export API_PASSWORD="сильный_пароль" # 'changeme' запрещён
export REDIS_URL="redis://127.0.0.1:6379/0" # опционально
rampart-manager
"Manager отдаёт 401"
Токен истёк (JWT_EXPIRATION_SECS, дефолт 86400) — перелогинься:
curl -s -X POST localhost:8080/api/v1/auth/login \
-H 'Content-Type: application/json' -d '{"password":"..."}'
Redis
"Redis падает с OOM"
redis-cli INFO memory | grep used_memory_human
redis-cli CONFIG SET maxmemory 2gb
redis-cli CONFIG SET maxmemory-policy allkeys-lru
"Edge не синхронизирует блэклист через Redis"
# redis_url задан и не пустой? Сборка с feature store-redis (дефолт)?
grep redis_url /etc/rampart/config.toml
journalctl -u rampart | grep -i redis
Без Redis edge работает автономно на локальном кэше блэклиста.
ClickHouse
"ClickHouse не принимает данные"
systemctl status clickhouse-server
curl http://localhost:8123/ping
clickhouse-client --query "SHOW TABLES FROM rampart"
df -h /var/lib/clickhouse
Запись настраивается store.clickhouse_url в config.toml. Ошибки записи не
роняют edge — они уходят в debug-лог.
Общая диагностика
rampart-cli doctor # полная диагностика через Manager API
rampart-cli status # краткий статус
Честно: набор проверок
doctorограничен тем, что реализовано в CLI (см. src/cli/commands/doctor.rs) и доступно Manager API.
Версия: 2.0 | Август 2026