Первые наброски конфигураций 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:
148
README.md
Normal file
148
README.md
Normal 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
|
||||
Reference in New Issue
Block a user