Files
singbox_glue/docs/configuration.md
T

3.1 KiB
Raw Blame History

Конфигурация

Policy schema version 1

Production-образец находится в config/policy.json. Неизвестные и отсутствующие ключи являются ошибкой.

sing_box

  • binary: абсолютный путь к бинарнику;
  • config_path: production JSON;
  • service: systemd service;
  • required_version: допускается только 1.13.19.

runtime

  • uri_path: desired-state secret;
  • state_dir: state и backups;
  • lock_path: межпроцессная блокировка;
  • backup_keep: число timestamped backups, от 1 до 100.

network

Здесь явно фиксируются интерфейсы, TUN CIDR, MTU, exclusions, таблица 2022, начальный rule index 9000, marks 0x2023/0x2024/0x2025, NFQUEUE 100 и fallback rule 32768.

Публичные адреса не должны добавляться в route_exclude_address. Локальные подсети 10.20.0.0/24, 10.30.0.0/24 и loopback сохраняются.

dns

Текущий контракт:

  • UDP bootstrap 1.1.1.1:53, bind eth0;
  • DoH 1.1.1.1:443/dns-query, SNI cloudflare-dns.com;
  • DoH detour hy2-out;
  • только ipv4_only.

healthcheck

По умолчанию выполняется HTTPS-запрос к Cloudflare trace и ожидается HTTP 200 с маркером ip=. Этот локальный post-activation connectivity healthcheck идёт после запуска sing-box и проверяет состояние systemd и исходящую связность самого шлюза. Он не заменяет acceptance-тест forwarding с workload за eth1.

url: null оставляет только проверку systemctl is-active. Это допустимо для изолированного стенда, но слабее production-проверки.

Поддерживаемая часть Hysteria2 URI

Поддерживаются:

  • hysteria2:// и hy2://;
  • percent-encoded auth, включая username:password;
  • DNS, IPv4, bracketed IPv6 и IDNA;
  • port 443 по умолчанию;
  • одиночный port и официальный multi-port/ranges;
  • sni, insecure=0|1;
  • obfs=salamander&obfs-password=...;
  • fragment как необязательное display name.

Отклоняются gecko, pinSHA256, ech, client modes, неизвестные и повторяющиеся параметры. Причина для pinSHA256: Hysteria URI и sing-box 1.13.19 используют разные виды certificate hash. ech будет добавлен только после доказанного преобразования формата config list.

Специальные символы в auth должны быть percent-encoded: сырой @ отклоняется, а %40 декодируется в @.

Bandwidth

up_mbps=50 и down_mbps=200 являются локальной политикой и намеренно не принимаются из URI.