Files
vpn-raspberry/client/wg0.conf
Maxim 886ba62ea6 Исправление маршрутизации, порт 25565 и документирование окружения
Транспорт udp2raw: 443 -> 25565/tcp
- 443 на сервере занят nginx (reverse-proxy Gitea totmaxim.ru); udp2raw в
  faketcp через правило -a перехватил бы весь TCP на своём порту и поломал nginx
- server/client .service: -l/-r переведены на 25565

Клиент (Raspberry Pi):
- wg0.conf: PreUp-маршрут 95.174.102.77/32 via 192.168.200.1 dev usbnet
  — устраняет петлю транспорта udp2raw при AllowedIPs=0.0.0.0/0
- nftables.conf: MSS-clamp для wlan0->wg0 (клиенты MTU 1500 vs туннель 1200)

Сервер (Ubuntu за NAT 192.168.31.163):
- wg0.conf: masquerade сужен до 10.66.66.0/24 в изолированной таблице wgfwd
  (не конфликтует с Docker), MSS-clamp на входе в туннель, MTU=1200

README:
- фактическая топология (сервер за NAT, 95.174.102.77 = WAN роутера, проброс
  25565 обязателен), таблица предусловий окружения и проверок
- шаг закрепления net.ipv4.ip_forward, диагностика петли и выхода в интернет
2026-07-07 13:16:50 +03:00

27 lines
1.6 KiB
Plaintext

# RASPBERRY PI 4 (клиент/роутер)
# uplink : usbnet 192.168.200.13/24, шлюз+DNS 192.168.200.1 (моб. канал, провайдер режет UDP)
# downstream: wlan0 192.168.77.0/24 (клиенты уходят в интернет через туннель)
[Interface]
Address = 10.66.66.2/24
# Приватный ключ Raspberry Pi (из файла client_private.key)
PrivateKey = eKiGDY62/9pgFrwzoNIb7URRLPgEHC1W7zHwIIDYQVw=
# Уменьшенный MTU для компенсации оверхеда WG (+60) и фейковых TCP-заголовков udp2raw (+~40)
MTU = 1200
# КРИТИЧНО: закрепляем маршрут до публичного входа сервера ЧЕРЕЗ реальный uplink.
# Иначе при AllowedIPs=0.0.0.0/0 сам транспорт udp2raw уйдёт в wg0 -> петля, туннель рвётся.
# 192.168.200.1 — шлюз usbnet; при смене канала поправить здесь (см. README).
PreUp = ip route replace 95.174.102.77/32 via 192.168.200.1 dev usbnet
PostDown = ip route del 95.174.102.77/32 2>/dev/null || true
[Peer]
# Публичный ключ Сервера (из файла server_public.key)
PublicKey = dVIwnwxkjan/K278vzhOjp5A79N98j0O1zsYqT24qzs=
# Стучимся в локальный порт udp2raw, запущенный прямо на Малинке
Endpoint = 127.0.0.1:51821
# Маршрутизируем абсолютно весь трафик через VPN туннель
AllowedIPs = 0.0.0.0/0
# Пакет удержания сессии через NAT провайдера
PersistentKeepalive = 25