2026-04-04 14:14:26 +03:00
2026-04-04 14:14:26 +03:00
2026-04-04 14:14:26 +03:00
2026-04-04 14:14:26 +03:00
2026-04-04 14:14:26 +03:00
2026-04-04 14:14:26 +03:00

vds haproxy + wireguard + ipvs

L4 балансировщик и шлюз для распределения tcp/udp сервисов во внутреннюю сеть через wireguard с использованием haproxy, ipvs и nftables.

Архитектура

  • Вход: публичные порты vds
  • tcp → haproxy
  • udp / спец. tcp → nftables (fwmark) → ipvs
  • Транспорт → wireguard (wg0)
  • NAT → netmap (1:1 подсети)

Компоненты

haproxy (tcp)

Работает в mode tcp, проксирует с поддержкой proxy-protocol:

Порт Сервис Backend
80 HTTP 10.x.102.3:81
443 HTTPS 10.x.102.3:444
22 Gitea SSH 10.x.103.3:22
24444 MCSManager 10.x.103.3:24445

xmpp (prosody)

Прямой tcp проброс:

Порт Сервис
5222, 5223 client
5269 server
5000 proxy65
5270 components
5280 BOSH

wireguard

  • Интерфейс: wg0
  • Подсеть: 10.x.200.0/24

Функции:

  • транспорт между узлами
  • запуск nftables и ipvs
  • включение ip_forward и conntrack

ipvs (fwmark)

Балансировка по меткам:

Марка Сервис Backend
10 coturn 10.x.103.10
20 minecraft 10.x.104.3
30 steam/valheim 10.x.104.4
40 rustdesk 10.x.200.1

Алгоритм: rr

nftables

prerouting

Классификация трафика:

  • wireguard (51820) → accept
  • coturn → mark 10
  • minecraft → mark 20
  • steam / valheim → mark 30
  • rustdesk → mark 40
  • nat (postrouting)

1:1 netmap через wg0:

10.x.0.0/24    → 10.x.100.0/24
10.x.1.0/24    → 10.x.101.0/24
10.x.2.0/24   → 10.x.102.0/24
10.x.3.0/24   → 10.x.103.0/24
10.x.4.0/24   → 10.x.104.0/24
10.x.5.0/24   → 10.x.105.0/24
192.x.x.0/24 → 10.x.200.0/24

Поток трафика

  1. Клиент → vds
  2. haproxy (tcp) или nftables (udp/marked tcp)
  3. Проставление fwmark
  4. ipvs → выбор backend
  5. SNAT (netmap) → wireguard
  6. Доставка в целевую подсеть

Цикл жизни

PostUp

  • загрузка модулей: ip_vs, nf_conntrack
  • включение ip_forward
  • применение nftables
  • настройка ipvs (fwmark rules)

PostDown

  • очистка ipvs
  • удаление таблицы nftables

Особенности

  • Используется proxy-protocol для реального ip
  • udp балансируется через ipvs
  • Сегментация через netmap (жёсткое соответствие подсетей)
  • Все сервисы заходят через одну точку (vds)

Зависимости

apt update
apt install ipvsadm ufw haproxy wireguard-tools
S
Description
No description provided
Readme
26 KiB