Files
singbox_glue/docs/configuration.md
T

75 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Конфигурация
## 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.