Files
vpn-raspberry/client/udp2raw-client.service
Maxim 538414f2c8 Стабильная работа туннеля: anti-RST, --fix-gro, QUIC-блок, автозагрузка
Проверено на живом стенде: 0% потерь на 10.66.66.1 и 8.8.8.8, выход через
сервер (curl -> 95.174.102.77).

Транспорт (устранение разрывов faketcp):
- anti-RST вписан в конфиги вместо хрупкого -a+flush:
  клиент — первой строкой chain input (ip saddr 95.174.102.77 tcp sport 25565 drop),
  сервер — в таблице wgfwd (ip daddr 192.168.31.163 tcp dport 25565 drop, переживает ufw reload).
  Причина: RST от ядра убивал CGNAT-маппинг оператора -> direction timeout и смена порта.
- --fix-gro на обоих концах: чинит дроп GRO «супер-пакетов» (huge packet > max_data_len).

Клиент:
- nftables.conf: flush ruleset (убирает дубли), reject QUIC/UDP 443 (откат браузера на TCP).
- udp2raw-client.service: After=nftables.service (anti-RST применяется до старта udp2raw).

Автозагрузка/порядок (обе службы udp2raw):
- After=network-online.target, Before=wg-quick@wg0.service.

README: раздел 5 «Известные нюансы» (anti-RST vs flush, CGNAT/RST, GRO),
сниппеты и таблицы приведены в соответствие.
2026-07-08 11:35:46 +03:00

23 lines
1.3 KiB
Desktop File
Raw Permalink 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.

[Unit]
Description=udp2raw Client (FakeTCP)
# network-online (а не network.target): нужен поднятый uplink usbnet до старта.
Wants=network-online.target
# nftables.service должен примениться ДО udp2raw: в /etc/nftables.conf лежит anti-RST
# правило (ip saddr 95.174.102.77 tcp sport 25565 drop). Требует enabled nftables.service.
After=network-online.target nftables.service
# Порядок автозагрузки: udp2raw поднимается ДО туннеля WireGuard (Endpoint=127.0.0.1:51821).
Before=wg-quick@wg0.service
[Service]
Type=simple
User=root
# Слушает локальный UDP-порт 51821 и транслирует в TCP на внешний вход сервера 95.174.102.77:25565
# ВАЖНО: Пароль в параметре -k должен строго совпадать с паролем на сервере!
# --fix-gro: стек склеивает входящие faketcp-сегменты в «супер-пакеты» >1800,
# udp2raw их дропает ("huge packet ... dropped") — флаг это чинит.
ExecStart=/usr/local/bin/udp2raw -c -l 127.0.0.1:51821 -r 95.174.102.77:25565 -k "MY_CONFIDENTIAL_PASS" --raw-mode faketcp --fix-gro -a
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target