Нода работает «из коробки» и не требует настройки. Переменные окружения нужны, когда поведение клиента надо подстроить под свою инфраструктуру: сменить порты, ограничить версии TLS, включить живой лог запросов или метрики.

Как задать переменные#

Клиент установлен в /opt/wafclient и запускается как systemd-служба privateflare. Переменные читаются из файла /opt/wafclient/.env — установщик создаёт его пустым.

  1. Откройте файл и добавьте переменные, по одной в строке в формате ИМЯ=значение:
nano /opt/wafclient/.env
  1. Перезапустите службу — переменные читаются только при старте клиента:
systemctl restart privateflare

Пример файла .env:

TLSMIN=1.2
LOGROUTE=/my-secret-log
LOGPASS=strong-password
LOGFORMAT=json

Чтобы отменить настройку, удалите строку из .env и перезапустите службу. Для переменных-переключателей (PFNOH3, PFNOBAN и других) важен сам факт наличия значения: PFNOH3=0 тоже отключит HTTP/3.

Сеть и TLS#

ПеременнаяОписаниеПо умолчанию
HTTPPПорт HTTP. Нечисловое значение или 0 игнорируется80
HTTPSPПорт HTTPS и HTTP/3443
TLSMINМинимальная версия TLS: 1.0, 1.1, 1.2 или 1.31.0
TLSMAXМаксимальная версия TLS: 1.0, 1.1, 1.2 или 1.31.3

Некорректное значение TLSMIN или TLSMAX не приводит к ошибке — используется значение по умолчанию.

HTTP/3 и фингерпринты#

ПеременнаяЧто делает
PFNOH3Отключает HTTP/3: QUIC не запускается, заголовок Alt-Svc не отдаётся, посетители остаются на TCP
PFNOJAОтключает расчёт JA3/JA4: заголовки PF-JA3 и PF-JA4 на бекенд не отправляются
PFNOSYNОтключает пассивный TCP-фингерпринт: заголовки PF-TCP-Fingerprint, PF-TCP-Signature и PF-TCP-OS на бекенд не отправляются

Достаточно любого непустого значения, например PFNOH3=1. Переменные независимы друг от друга.

Важно: JA3/JA4 считаются только для TCP-соединений. Браузер, перешедший на HTTP/3, придёт на бекенд без PF-JA3/PF-JA4. Если фингерпринты нужны в каждом запросе — задайте PFNOH3. На заголовок TLSFingerprint это не распространяется: он приходит и по TCP, и по HTTP/3, и PFNOJA на него не влияет.

Заголовки пассивного TCP-фингерпринта:

ЗаголовокПримерЧто это
PF-TCP-Signature4:64:0:1460:mss*44,10:mss,sok,ts,nop,ws:df,id+:0Сигнатура соединения в формате p0f v3
PF-TCP-Fingerprintcd79d39f578dКороткий хеш сигнатуры
PF-TCP-OSLinux 2.2.x-3.xОпределённая ОС клиента. Отсутствует, если совпадения нет

Системные настройки#

При запуске клиент оптимизирует сетевые параметры ядра, настраивает файрвол и блокирует IP через iptables/ipset. Если сервером управляет ваша собственная автоматизация, эти действия можно отключить.

ПеременнаяЧто делает
PFNOBANОтключает блокировку IP через iptables/ipset
PFNOTUNEОтключает оптимизацию sysctl и настройку файрвола
PFNOFWОтключает только настройку файрвола

Достаточно любого непустого значения.

Живой лог запросов#

ПеременнаяОписаниеПо умолчанию
LOGROUTEАдрес страницы живого лога, например /log. Если не задана — лог выключенвыключен
LOGUSERЛогинlog
LOGPASSПарольlog
LOGFORMATФормат строк: json или текстовый (любое другое значение)текстовый

Подробнее — в разделе Логирование.

Метрики#

Нода может отдавать метрики в формате Prometheus — их удобно подключить к собственному мониторингу.

ПеременнаяОписаниеПо умолчанию
METRICSROUTEАдрес страницы метрик, например /metrics. Если не задана — метрики выключенывыключены
METRICSUSERЛогинmetrics
METRICSPASSПарольmetrics

Важно: страницы лога и метрик доступны на любом домене, который обслуживает нода. Обязательно задайте собственный пароль и неочевидный адрес — значения по умолчанию общеизвестны.