Files
vpn-raspberry/server/wg0.conf
Maxim 888fd86dfa README: чистое форматирование + раздел тюнинга
- Переписан весь README с корректной markdown-разметкой (закрыты код-блоки,
  убраны литеральные "Bash"/"Ini, TOML"/"Code snippet", исправлены заголовки
  и съехавшие таблицы, устранена двойная нумерация раздела 4)
- install -m 755 вместо cp+chmod, бинарник ФАЙЛОМ (частая ошибка на Pi)
- Раздел 5 "Известные нюансы": автозагрузка с порядком запуска,
  диагностика "не все сайты" (QUIC/MTU), устранение дублей nftables
2026-07-07 16:24:57 +03:00

31 lines
1.9 KiB
Plaintext
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.

# СЕРВЕР (Ubuntu, за NAT: enp2s0 = 192.168.31.163, шлюз 192.168.31.1)
# Публичный вход: 95.174.102.77:25565 (TCP) --проброс на роутере--> 192.168.31.163:25565
# (443 не используем — его держит nginx/Gitea; см. udp2raw-server.service)
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.66.66.1/24
ListenPort = 51820
# Приватный ключ Сервера (из файла server_private.key)
PrivateKey = KMcPBI6LAY/NC1zFNYopsvNXqQ8w8ssluDj4yOh3skk=
# Симметрично клиенту: транспорт идёт внутри faketcp, держим запас на оверхед
MTU = 1200
# Всё хозяйство WG держим в отдельной nft-таблице wgfwd, чтобы:
# - не конфликтовать с правилами Docker/UFW в главных таблицах;
# - на PostDown снести одной командой (идемпотентно).
# NAT: маскарадим ТОЛЬКО подсеть туннеля (не трогаем docker и трафик хоста).
PostUp = nft add table ip wgfwd
PostUp = nft add chain ip wgfwd postrouting { type nat hook postrouting priority 100 \; policy accept \; }
PostUp = nft add rule ip wgfwd postrouting ip saddr 10.66.66.0/24 oifname "enp2s0" masquerade
# MSS-clamp для пакетов, входящих В туннель (SYN-ACK от внешних серверов),
# чтобы large-TCP не «залипал» из-за MTU 1200 и заблокированного PMTUD.
PostUp = nft add chain ip wgfwd mangle { type filter hook forward priority -150 \; policy accept \; }
PostUp = nft add rule ip wgfwd mangle oifname "wg0" tcp flags syn tcp option maxseg size set rt mtu
PostDown = nft delete table ip wgfwd
[Peer]
# Публичный ключ Raspberry Pi (из файла client_public.key)
PublicKey = WWFhoYfIgIhGOsvdJ/F9eWx7hPksrV6riiqo5lFPExI=
AllowedIPs = 10.66.66.2/32