# 🛡️ WireGuard Easy — Быстрый старт > Простое развёртывание WireGuard VPN с веб-интерфейсом через Docker. --- ## 📋 Требования | Компонент | Минимум | |-----------|---------| | ОС | Ubuntu 20.04+ / Debian 11+ / CentOS 8+ | | CPU | 1 ядро | | RAM | 256 МБ | | Внешний IP | Статический (обязательно) | | Docker | 20.10+ | --- ## 🚀 Быстрый старт ### 1️⃣ Установка Docker ```bash # Ubuntu/Debian apt update && apt upgrade -y apt install -y docker.io systemctl enable --now docker # Проверка docker --version ``` --- ### 2️⃣ Создание рабочей директории ```bash mkdir -p ~/wg-easy && cd ~/wg-easy ``` --- ### 3️⃣ Генерация хеша пароля > ⚠️ Сначала сгенерируйте хеш — он понадобится на следующем шаге. ```bash docker run --rm ghcr.io/wg-easy/wg-easy:latest wgpw ВАШ_ПАРОЛЬ ``` Скопируйте вывод (строку вида `$2b$12$...`) — это и есть `PASSWORD_HASH`. --- ### 4️⃣ Запуск контейнера ```bash docker run -d \ --name=wg-easy \ -e WG_HOST=ВАШ_ПУБЛИЧНЫЙ_IP \ -e PASSWORD_HASH='$2b$12$ВСТАВЬТЕ_ХЕШ_СЮДА' \ -e WG_DEFAULT_DNS=8.8.8.8,8.8.4.4 \ -v ~/wg-easy:/etc/wireguard \ -p 51820:51820/udp \ -p 51821:51821/tcp \ --cap-add=NET_ADMIN \ --cap-add=SYS_MODULE \ --sysctl="net.ipv4.conf.all.src_valid_mark=1" \ --sysctl="net.ipv4.ip_forward=1" \ --restart unless-stopped \ ghcr.io/wg-easy/wg-easy ``` > **Замените:** > - `ВАШ_ПУБЛИЧНЫЙ_IP` — внешний IP вашего сервера > - `$2b$12$ВСТАВЬТЕ_ХЕШ_СЮДА` — хеш из шага 3 --- ## ⚙️ Переменные окружения | Переменная | Описание | По умолчанию | |------------|----------|--------------| | `WG_HOST` | Публичный IP или домен сервера | — | | `PASSWORD_HASH` | Bcrypt-хеш пароля для веб-интерфейса | — | | `WG_PORT` | UDP-порт WireGuard | `51820` | | `WG_DEFAULT_DNS` | DNS для клиентов | `1.1.1.1` | | `WG_DEFAULT_ADDRESS` | Подсеть клиентов | `10.8.0.x` | | `WG_ALLOWED_IPS` | Разрешённые IP для клиентов | `0.0.0.0/0` | | `UI_TRAFFIC_STATS` | Показывать статистику трафика | `false` | | `LANG` | Язык интерфейса (`ru`, `en` и др.) | `en` | --- ## 🎛️ Управление контейнером ```bash # Статус docker ps | grep wg-easy # Логи docker logs wg-easy docker logs -f wg-easy # в реальном времени # Перезапуск / Стоп / Старт docker restart wg-easy docker stop wg-easy docker start wg-easy # Удаление контейнера (данные в ~/wg-easy/ сохранятся) docker rm -f wg-easy # Обновление образа docker pull ghcr.io/wg-easy/wg-easy docker stop wg-easy && docker rm wg-easy # Затем повторите команду из шага 4 ``` --- ## 📁 Расположение данных ``` ~/wg-easy/ ├── wg0.conf # Конфигурация сервера WireGuard └── wg0.json # Данные клиентов (веб-интерфейс) ``` > 💾 Регулярно делайте резервную копию этой директории! ```bash tar -czf wg-easy-backup-$(date +%F).tar.gz ~/wg-easy/ ``` --- ## 📱 Подключение клиентов ### Через веб-интерфейс 1. Откройте в браузере: `http://ВАШ_IP:51821` 2. Введите пароль, указанный при установке 3. Нажмите **+ New Client**, задайте имя 4. Получите конфиг: - 📥 **Download** — скачать файл `.conf` - 📷 **QR Code** — отсканировать камерой телефона ### Импорт в клиент WireGuard | Платформа | Инструкция | |-----------|------------| | **Android** | [WireGuard](https://play.google.com/store/apps/details?id=com.wireguard.android) → «+» → «Импорт из файла / QR» | | **iOS** | [WireGuard](https://apps.apple.com/app/wireguard/id1441195209) → «+» → «Сканировать QR» или «Импортировать» | | **Windows** | [Скачать клиент](https://www.wireguard.com/install/) → «Import tunnel(s) from file» | | **macOS** | `brew install wireguard-tools` → скопировать `.conf`, запустить `wg-quick up wg0` | | **Linux** | `apt install wireguard` → скопировать `.conf` в `/etc/wireguard/`, запустить `wg-quick up wg0` | --- ## 🔒 Безопасность ### ✅ Рекомендации - Используйте **надёжный пароль** (12+ символов, буквы + цифры + спецсимволы) - Ограничьте доступ к веб-интерфейсу по IP - Регулярно обновляйте Docker-образ - Делайте резервные копии данных ### 🛡️ Настройка фаервола ```bash # UFW (Ubuntu/Debian) sudo ufw allow 51820/udp # WireGuard sudo ufw allow from 203.0.113.10 to any port 51821 proto tcp # Веб только с вашего IP sudo ufw enable sudo ufw status ``` ```bash # firewalld (CentOS/RHEL) sudo firewall-cmd --add-port=51820/udp --permanent sudo firewall-cmd --add-port=51821/tcp --permanent sudo firewall-cmd --reload ``` ### 🔐 Защита от брутфорса (Fail2Ban) ```bash sudo apt install fail2ban -y sudo systemctl enable --now fail2ban ``` ### 🔄 Автообновление образа (Watchtower) ```bash docker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --cleanup --interval 86400 wg-easy ``` --- ## ❓ Частые проблемы | Проблема | Решение | |----------|---------| | Контейнер не запускается | Проверьте `docker logs wg-easy` | | Клиенты не подключаются | Убедитесь, что порт `51820/udp` открыт в фаерволе | | Веб-интерфейс недоступен | Проверьте порт `51821/tcp` и правильность IP | | Нет интернета через VPN | Проверьте `net.ipv4.ip_forward=1` на хосте | | Ошибка хеша пароля | Убедитесь, что хеш обёрнут в **одинарные** кавычки |