[amnezia] # Порядок важен: используется первый запущенный контейнер из списка. container_names = ["amnezia-awg2", "amnezia-awg"] interface_candidates = ["awg0", "wg0", "amnezia0", "tun0"] interface_patterns = ["awg*", "wg*", "amnezia*", "tun*"] # Утилита для чтения peer state внутри контейнера. Пробуются по порядку, # используется первая успешная. В официальном образе AmneziaWG реальный бинарь — # /usr/bin/awg, а /usr/bin/wg является symlink на него. # Значения выполняются внутри контейнера: только имена команд, без путей и пробелов. # На хосте wireguard-tools не требуется. wg_binaries = ["awg", "wg"] # Подсеть VPN peers. # Проверка: # C="$(docker ps --format '{{.Names}}' | grep -E '^(amnezia-awg2|amnezia-awg)$' | head -n1)" # docker exec "$C" ip -4 addr # docker exec "$C" awg show peer_ipv4_cidr = "10.8.1.0/24" # Ожидаемый внешний UDP-порт, опубликованный Docker для AWG. # Это diagnostic contract, а не правило host INPUT firewall. expected_host_udp_port = 443 [traffic] enabled = true peer_limit = "50mbit" root_rate = "500mbit" reconcile_interval_secs = 15 container_ready_timeout_secs = 120 # Textual minor id для tc: допустимо только 10..=9999. Число peers также # не должно выводить последний class id за 9999. class_start_id = 10 # Созданный Harness IFB получает alias awg2-harness:traffic. Существующий # интерфейс с тем же именем без этого alias считается чужим и не удаляется. 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 = "off" # none | fq # fq управляется только когда BBR выбран desired policy. default_qdisc = "fq" # Лимиты socket buffers в байтах. # Баланс для хоста порядка ~500 Mbit/s. rmem_max = 67108864 wmem_max = 67108864 # По умолчанию harness не меняет receive backlog хоста. 10000 — только # стартовое opt-in значение для хоста, где рост drops подтверждён метриками. netdev_backlog_enabled = false netdev_max_backlog = 10000 udp_rmem_min_enabled = false 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 allow_icmp = true # Конечный verdict собственной AWG2H_A/AWG2H_B chain; policy встроенного # INPUT Harness не меняет. default_input_policy = "drop" [anti_torrent] enabled = true max_connections_per_peer = 500 # Обычно та же подсеть, что и [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