Перейти к содержимому
Использование CLI keen-pbr

Использование CLI keen-pbr

keen-pbr умеет запускать сервис маршрутизации, проверять его состояние в реальном времени, скачивать данные списков и выводить сгенерированную конфигурацию резолвера.

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

Usage: keen-pbr [options] <command>

Options:
  --config <path>    Путь к JSON файлу конфигурации
  --log-level <lvl>  Уровень логов: error, warn, info, verbose, debug
  --no-api           Отключить REST API во время выполнения
  --version         Показать версию и выйти
  --help            Показать эту справку и выйти

Commands:
  service
  status
  download
  generate-resolver-config <res>
  resolver-config-hash
  test-routing <ip-or-domain>

Файл конфигурации обычно /etc/keen-pbr/config.json на OpenWrt и Debian, и /opt/etc/keen-pbr/config.json на Keenetic / NetCraze.

Опции

Флаг Описание
--config <path> Путь к JSON файлу конфигурации.
--log-level <lvl> Детализация логов: error, warn, info, verbose или debug.
--no-api Отключить REST API, даже если он включён в конфиге.
--version Вывести версию и выйти.
--help Вывести справку и выйти.

Команды

Команда Описание
service Запустить сервис маршрутизации на переднем плане.
status Показать состояние маршрутизации, таблиц маршрутизации, правил и верификации firewall, затем выйти.
download Загрузить все списки с URL в кэш, затем выйти.
generate-resolver-config <res> Вывести сгенерированную конфигурацию резолвера в stdout. Поддерживаемые резолверы: dnsmasq-ipset, dnsmasq-nftset.
resolver-config-hash Вывести MD5-хеш сгенерированного сопоставления домен-ipset, затем выйти.
test-routing <ip-or-domain> Сравнить ожидаемую и фактическую маршрутизацию для данного IP или домена.

Сигналы

Когда keen-pbr работает как управляемый сервис (демон), им также можно управлять через Unix-сигналы:

Сигнал Действие
SIGUSR1 Повторная проверка таблиц маршрутизации и немедленный запуск urltest-замеров задержки
SIGHUP Полная перезагрузка: повторная загрузка списков при изменениях, повторное применение правил firewall и маршрутизации
SIGTERM / SIGINT Корректное завершение работы

Пример полной перезагрузки через сигнал SIGHUP:

bash
kill -HUP $(cat /var/run/keen-pbr.pid)

Примеры

Проверить состояние маршрутизации и firewall:

bash
keen-pbr status

Пример вывода:

keen-pbr status - config: /etc/keen-pbr/config.json
Firewall backend: nftables

Outbounds:
  corp_vpn [interface] iface=corp_vpn fwmark=0x00010000 table=402
    route   table=402 default dev corp_vpn ............................... OK
    rule    0x00010000/0x00ff0000 -> table=402 pri=402 ........... OK [v4+v6]
  auto_vpn [urltest] fwmark=0x00060000 table=407
    route   table=407 default dev corp_vpn ............................... OK
    rule    0x00060000/0x00ff0000 -> table=407 pri=407 ........... OK [v4+v6]

Firewall:
  chain   KeenPbrTable / prerouting hook ............................... OK
    rule    kpbr4_generic -> MARK 0x00010000 ........................ MISSING
     правило не найдено в цепочке prerouting nftables

Overall: DEGRADED (2 проверки не пройдено)
Статус: OK / MISSING / MISMATCH / ERROR

Загрузить все списки с URL:

bash
keen-pbr download

Пример вывода:

[google] Not modified (304)
[internal.site] Skipped (no URL)
[generic] Skipped (no URL)

Сгенерировать конфигурацию резолвера:

bash
keen-pbr generate-resolver-config dnsmasq-ipset

Пример вывода:

# Generated by keen-pbr (dnsmasq-ipset) - do not edit manually

address=/use-application-dns.net/

rebind-domain-ok=keen.pbr
server=/check.keen.pbr/127.0.0.88#53

server=10.100.100.100

# List: google
ipset=/google.com/www.google.com/.../kpbr4d_google,kpbr6d_google

Вывести хеш конфигурации резолвера:

bash
keen-pbr resolver-config-hash

Пример вывода:

6aa71fa9012013b242460b9d1e173d82

Протестировать совпадение ожидаемой и фактической маршрутизации:

bash
keen-pbr test-routing google.com

Пример вывода:

Target: google.com
Resolved IPs: 2001:4860:4860::8888, 142.250.74.14

IP                        | List Match               | Expected Outbound  | Actual Outbound    | Status
---------------------------------------------------------------------------------------------------
2001:4860:4860::8888      | google (via google.com)  | corp_vpn           | corp_vpn           | OK
142.250.74.14             | google (via google.com)  | corp_vpn           | corp_vpn           | OK