Перейти к содержимому
Расширенные настройки

Расширенные настройки

Большинству пользователей эта страница не понадобится.

Здесь описаны настройки для продвинутых сценариев и на уровне сервиса: daemon, api, fwmark, iproute и lists_autoupdate.

daemon

Управляет путём к PID-файлу, каталогом кэша и глобальным поведением маршрутизации.

Поле Тип По умолчанию Описание
pid_file string Путь к PID-файлу
cache_dir string /var/cache/keen-pbr Каталог для кэшированных данных списков
firewall_backend string "auto" Бэкенд firewall: auto, iptables или nftables
strict_enforcement boolean false Строгое применение маршрутизации для outbound типа interface: если включено, при недоступности шлюза или интерфейса устанавливается недостижимый маршрут по умолчанию. Можно переопределить для каждого outbound отдельно.
max_file_size_bytes integer 8388608 (8 MiB) Максимальный размер загруженного удалённого списка в байтах
firewall_verify_max_bytes integer 262144 Максимальное число байт stdout, захватываемых за одну команду проверки firewall (0 = без ограничений)
config.json
{
  "daemon": {
    "pid_file": "/var/run/keen-pbr.pid",
    "cache_dir": "/var/cache/keen-pbr",
    "firewall_backend": "auto",
    "strict_enforcement": false,
    "max_file_size_bytes": 8388608,
    "firewall_verify_max_bytes": 262144
  }
}

Каталог кэша хранит загруженные удалённые списки, чтобы они были доступны, если сеть недоступна при запуске.

api

Управляет встроенным HTTP API-сервером.

Поле Тип По умолчанию Описание
enabled boolean false Включить HTTP API
listen string "0.0.0.0:12121" Адрес и порт для прослушивания
config.json
{
  "api": {
    "enabled": true,
    "listen": "0.0.0.0:12121"
  }
}

API также может быть отключён во время выполнения с помощью --no-api, независимо от настройки в конфиге. См. REST API для документации эндпоинтов и управлений во время выполнения.

fwmark

Управляет диапазоном firewall mark, используемым для маркировки пакетов при политической маршрутизации.

Поле Тип По умолчанию Описание
start string "0x00010000" Первое значение fwmark для назначения outbounds
mask string "0x00FF0000" Битовмаска fwmark
config.json
{
  "fwmark": {
    "start": "0x00010000",
    "mask": "0x00FF0000"
  }
}

mask должна быть точно двумя смежными hex-нибблами (например, 0x00FF0000). Outbounds получают последовательные marks, начиная с start, с применением mask.

Если другое программное обеспечение на вашей системе использует тот же диапазон fwmark, скорректируйте start и mask, чтобы избежать конфликтов.

iproute

Управляет диапазоном ID таблиц маршрутизации, используемым для outbound-специфичных таблиц.

Поле Тип По умолчанию Описание
table_start integer 150 Первый ID таблицы маршрутизации для выделения под outbounds
config.json
{
  "iproute": {
    "table_start": 150
  }
}

Outbounds получают последовательные ID таблиц, начиная с table_start. Убедитесь, что эти ID не конфликтуют с существующими таблицами маршрутизации в вашей системе.

lists_autoupdate

Управляет автоматическим периодическим обновлением удалённых списков.

Если секция lists_autoupdate не указана, автоматическое обновление выключено.

Поле Тип По умолчанию Описание
enabled boolean false Включить автоматическое обновление списков
cron string Стандартное 5-полевное выражение cron для расписания обновления
config.json
{
  "lists_autoupdate": {
    "enabled": true,
    "cron": "0 4 * * 0"
  }
}

Поле cron использует стандартный 5-полевой формат: минута час день-месяца месяц день-недели. Пример выше запускается раз в неделю в воскресенье в 04:00.

Поле cron валидируется, даже когда enabled установлен в false.

Вы также можете запустить обновление вручную в любое время:

  • Отправьте SIGHUP в процесс демона: kill -HUP $(cat /var/run/keen-pbr.pid)