Расширенные настройки
Большинству пользователей эта страница не понадобится.
Здесь описаны настройки для продвинутых сценариев и на уровне сервиса: 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 = без ограничений) |
{
"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" |
Адрес и порт для прослушивания |
{
"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 |
{
"fwmark": {
"start": "0x00010000",
"mask": "0x00FF0000"
}
}mask должна быть точно двумя смежными hex-нибблами (например, 0x00FF0000). Outbounds получают последовательные marks, начиная с start, с применением mask.
start и mask, чтобы избежать конфликтов.iproute
Управляет диапазоном ID таблиц маршрутизации, используемым для outbound-специфичных таблиц.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
table_start |
integer | 150 |
Первый ID таблицы маршрутизации для выделения под outbounds |
{
"iproute": {
"table_start": 150
}
}Outbounds получают последовательные ID таблиц, начиная с table_start. Убедитесь, что эти ID не конфликтуют с существующими таблицами маршрутизации в вашей системе.
lists_autoupdate
Управляет автоматическим периодическим обновлением удалённых списков.
Если секция lists_autoupdate не указана, автоматическое обновление выключено.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled |
boolean | false |
Включить автоматическое обновление списков |
cron |
string | — | Стандартное 5-полевное выражение cron для расписания обновления |
{
"lists_autoupdate": {
"enabled": true,
"cron": "0 4 * * 0"
}
}Поле cron использует стандартный 5-полевой формат: минута час день-месяца месяц день-недели. Пример выше запускается раз в неделю в воскресенье в 04:00.
Поле cron валидируется, даже когда enabled установлен в false.
Вы также можете запустить обновление вручную в любое время:
- Отправьте
SIGHUPв процесс демона:kill -HUP $(cat /var/run/keen-pbr.pid)