2c27bff800
Добавлен отдельный host-level модуль sysctl_tuning без легаси-подходов: managed sysctl файл, точечный reconcile через sysctl -w только для drifted ключей, режимы tcp_bbr off/auto/require, безопасное удаление только managed-файла и атомарная запись конфигурации. Интегрированы новые CLI-команды apply-network-tuning/inspect-network-tuning, startup reconcile в daemon и секция Network tuning в status. Расширены config/defaults/валидация, обновлен пример конфига и документация. Добавлены unit-тесты для config и sysctl_tuning.
82 lines
2.4 KiB
TOML
82 lines
2.4 KiB
TOML
[amnezia]
|
|
container_names = ["amnezia-awg2", "amnezia-awg"]
|
|
interface_candidates = ["awg0", "wg0", "amnezia0", "tun0"]
|
|
interface_patterns = ["awg*", "wg*", "amnezia*", "tun*"]
|
|
# Подсеть VPN peers.
|
|
# Проверка:
|
|
# C="$(docker ps --format '{{.Names}}' | grep -E '^(amnezia-awg2|amnezia-awg)$' | head -n1)"
|
|
# docker exec "$C" ip -4 addr
|
|
# docker exec "$C" wg show
|
|
peer_ipv4_cidr = "10.8.1.0/24"
|
|
|
|
[traffic]
|
|
enabled = true
|
|
peer_limit = "50mbit"
|
|
root_rate = "500mbit"
|
|
reconcile_interval_secs = 15
|
|
container_ready_timeout_secs = 120
|
|
class_start_id = 10
|
|
ifb_name = "ifb0"
|
|
|
|
[sysctl_tuning]
|
|
enabled = true
|
|
apply_on_daemon_start = true
|
|
|
|
# Включает IPv4 forwarding для VPN/Docker gateway host.
|
|
ip_forward = true
|
|
|
|
# off | auto | require
|
|
# auto: использовать BBR, если доступен; иначе пропустить без ошибки.
|
|
# require: завершить с ошибкой, если BBR недоступен.
|
|
tcp_bbr = "auto"
|
|
|
|
# none | fq | fq_codel
|
|
# fq применяется только когда BBR активен.
|
|
default_qdisc = "fq"
|
|
|
|
# Лимиты socket buffers в байтах.
|
|
# Баланс для хоста порядка ~500 Mbit/s.
|
|
rmem_max = 67108864
|
|
wmem_max = 67108864
|
|
|
|
netdev_backlog_enabled = true
|
|
netdev_max_backlog = 50000
|
|
|
|
udp_rmem_min_enabled = true
|
|
udp_rmem_min = 8192
|
|
|
|
# net.ipv4.udp_wmem_min intentionally not managed:
|
|
# Linux kernel documentation states it has no effect.
|
|
|
|
[host_firewall]
|
|
enabled = true
|
|
# Должен совпадать с реально слушающим портом sshd до apply-firewall.
|
|
ssh_port = 2323
|
|
# Должен совпадать с опубликованным Docker/Amnezia UDP-портом.
|
|
# Проверка: docker port amnezia-awg2 2>/dev/null || docker port amnezia-awg
|
|
# Транспортный порт AmneziaWG/AWG, опубликованный Docker, обычно 443/udp.
|
|
# Это не AmneziaDNS. Не указывайте здесь 53.
|
|
amnezia_port = 443
|
|
amnezia_protocols = ["udp"]
|
|
allow_icmp = true
|
|
default_input_policy = "drop"
|
|
|
|
[anti_torrent]
|
|
enabled = true
|
|
max_connections_per_peer = 150
|
|
# Обычно та же подсеть, что и [amnezia].peer_ipv4_cidr.
|
|
peer_ipv4_cidr = "10.8.1.0/24"
|
|
apply_in_amnezia_netns = true
|
|
|
|
[reboot]
|
|
enabled = true
|
|
window_start_utc = "01:00"
|
|
window_end_utc = "02:00"
|
|
|
|
[swap]
|
|
enabled = true
|
|
path = "/swapfile"
|
|
size_mb = 2048
|
|
priority = 1
|
|
swappiness = 1
|