Первые наброски конфигураций WireGuard + udp2raw

- Конфиги сервера (Ubuntu) и клиента (Raspberry Pi 4): wg0.conf, systemd-сервисы udp2raw, nftables
- README с инструкцией по развёртыванию и генерации ключей
- .gitignore: исключены бинарный архив udp2raw и генерируемые *.key
- .gitattributes: LF для всех Linux-конфигов (.conf/.service/.sh)
This commit is contained in:
Maxim
2026-07-07 11:37:23 +03:00
commit 6b74cf61df
8 changed files with 315 additions and 0 deletions

148
README.md Normal file
View File

@@ -0,0 +1,148 @@
Файл документации (README.md)
# Схема WireGuard + udp2raw
Данный проект содержит готовые конфигурации для развертывания отказоустойчивого VPN-туннеля между **Удаленным сервером (Ubuntu)** и **Raspberry Pi 4**.
Решение маскирует UDP-трафик WireGuard под стандартные TCP-пакеты (рукопожатие HTTPS на порт 443), что позволяет успешно обходить ограничения провайдеров, блокирующих или урезающих UDP-протокол на интерфейсе `usbnet`.
---
## Аутентификационные данные проекта
Для развертывания используются предварительно сгенерированные и проверенные ключи:
* **Сервер (`95.174.102.77`):**
* Public Key: `dVIwnwxkjan/K278vzhOjp5A79N98j0O1zsYqT24qzs=`
* Private Key: `KMcPBI6LAY/NC1zFNYopsvNXqQ8w8ssluDj4yOh3skk=`
* **Клиент (Raspberry Pi 4):**
* Public Key: `WWFhoYfIgIhGOsvdJ/F9eWx7hPksrV6riiqo5lFPExI=`
* Private Key: `eKiGDY62/9pgFrwzoNIb7URRLPgEHC1W7zHwIIDYQVw=`
> **Внимание:** Перед запуском обязательно измените значение `"MY_CONFIDENTIAL_PASS"` в аргументе `-k` системных сервисов `udp2raw` на сервере и клиенте на ваш собственный секретный пароль.
Проверка соответствия ключей:
```
echo "--- SERVER PUBLIC KEY ---" && sudo cat server_public.key
echo "--- SERVER PRIVATE KEY ---" && sudo cat server_private.key
```
---
## Подготовка и генерация ключей
Перед началом настройки зайдите на любое устройство и сгенерируйте две пары ключей (для сервера и для клиента):
```bash
# Ключи Сервера
wg genkey | tee server_private.key | wg pubkey > server_public.key
# Ключи Клиента (Raspberry Pi)
wg genkey | tee client_private.key | wg pubkey > client_public.key
```
Важно: Замените плейсхолдеры _KEY_HERE во всех файлах конфигурации на сгенерированные строки. Также замените "SUPER_SECRET_PASSWORD" в сервисах udp2raw на ваш собственный секретный общий пароль.
Инструкция по развертыванию на СЕРВЕРЕ (Ubuntu)
Установите WireGuard:
```Bash
sudo apt update && sudo apt install wireguard -y
```
Установите udp2raw:
Скачайте бинарный файл udp2raw_amd64 со страницы релизов проекта wangyu/udp2raw.
```Bash
sudo wget [https://github.com/wangyu/udp2raw/releases/download/20230206.0/udp2raw_binaries.tar.gz](https://github.com/wangyu/udp2raw/releases/download/20230206.0/udp2raw_binaries.tar.gz)
tar -xvf udp2raw_binaries.tar.gz
sudo cp udp2raw_amd64 /usr/local/bin/udp2raw
sudo chmod +x /usr/local/bin/udp2raw
```
Копирование конфигураций:
Перенесите файл server/wg0.conf в папку /etc/wireguard/wg0.conf.
Перенесите файл server/udp2raw-server.service в папку /etc/systemd/system/udp2raw-server.service.
Запуск сервисов:
```Bash
sudo systemctl daemon-reload
sudo systemctl enable --now udp2raw-server
sudo systemctl enable --now wg-quick@wg0
```
Инструкция по развертыванию на КЛИЕНТЕ (Raspberry Pi 4)
Установите WireGuard:
```Bash
sudo apt update && sudo apt install wireguard -y
```
Установите udp2raw (Архитектура ARM64):
```Bash
# Используйте бинарник udp2raw_arm64 из того же архива релизов
sudo cp udp2raw_arm64 /usr/local/bin/udp2raw
sudo chmod +x /usr/local/bin/udp2raw
```
Настройка межсетевого экрана (nftables):
Откройте ваш рабочий конфиг /etc/nftables.conf и интегрируйте в него правила из файла client/nftables.conf.append.
Примените изменения:
```Bash
sudo nft -f /etc/nftables.conf
```
Копирование конфигураций:
Перенесите файл client/wg0.conf в папку /etc/wireguard/wg0.conf.
Перенесите файл client/udp2raw-client.service в папку /etc/systemd/system/udp2raw-client.service.
Запуск сервисов:
```Bash
sudo systemctl daemon-reload
sudo systemctl enable --now udp2raw-client
sudo systemctl enable --now wg-quick@wg0
```
---
## Документация релиза и файлов udp2rawАктуальная ссылка для скачивания:
https://github.com/wangyu-/udp2raw/releases/download/20230206.0/udp2raw_binaries.tar.gz
Версия (из version.txt): 20230206.0
Спецификация распакованных файлов
Файл Назначение и Архитектура Куда устанавливаем
udp2raw_amd64 Стандартная 64-битная архитектура x86. Удаленный Сервер (Ubuntu)
udp2raw_amd64_hw_aes 64-битная x86 с аппаратным ускорением AES (если процессор сервера поддерживает). Альтернатива для сервера
udp2raw_arm 32-битная архитектура ARM (подходит для старых Raspberry Pi или 32-битных ОС). Raspberry Pi 4 (если ОС 32-bit)
udp2raw_arm_asm_aes ARM архитектура с ускорением AES на ассемблере. Raspberry Pi 4 (Оптимально)
udp2raw_x86 / _x86_asm_aes Старые 32-битные процессоры Intel/AMD. Не используется
udp2raw_mips24kc_... Архитектуры для домашних роутеров (OpenWrt). Не используется
---
Диагностика и проверка статуса
В случае проблем проверяйте работу цепочки поочередно:
Проверка TCP-туннеля (udp2raw):
На клиенте: sudo systemctl status udp2raw-client
На сервере: sudo systemctl status udp2raw-server
В логах должно быть состояние [ready] и успешные хэндшейки.
Проверка WireGuard туннеля:
Выполните команду: sudo wg show
Должна появиться строчка latest handshake: ... секунд назад и идти обмен данными.
Проверка пинга:
С малинки: ping 10.66.66.1