🚀 Быстрый старт ### 1️⃣ Установка Docker (если не установлен) ```bash # Для Ubuntu/Debian apt update && apt upgrade -y apt install -y docker.io systemctl enable docker systemctl start docker ``` Проверка: ```bash docker --version ``` --- ### 2️⃣ Создание рабочей директории ```bash mkdir -p ~/wg-easy && cd ~/wg-easy ``` ### 3️⃣ Запуск контейнера ```bash docker run -d \ --name=wg-easy \ -e WG_HOST=ВАШ_ПУБЛИЧНЫЙ_IP \ -e PASSWORD_HASH='$(docker run --rm ghcr.io/wg-easy/wg-easy password-hash ВАШ_ПАРОЛЬ)' \ -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 вашего сервера. --- ## ⚙️ Настройка окружения ### 🔐 Генерация хеша пароля ```bash docker run --rm ghcr.io/wg-easy/wg-easy password-hash ваш_надёжный_пароль ``` Скопируйте полученный хеш и подставьте в параметр `PASSWORD_HASH`. ### 🌐 Переменные окружения | Переменная | Обязательная | Описание | Пример | |------------|--------------|----------|--------| | `WG_HOST` | ✅ | Публичный IP сервера | `193.124.57.125` | | `PASSWORD_HASH` | ✅ | Bcrypt-хеш пароля для веб-интерфейса | `$2a$12$...` | | `WG_DEFAULT_DNS` | ❌ | DNS-серверы для клиентов | `8.8.8.8,8.8.4.4` | | `WG_MTU` | ❌ | MTU для WireGuard-интерфейса | `1420` | | `WG_ALLOWED_IPS` | ❌ | Разрешённые подсети | `192.168.1.0/24` | | `WG_PERSISTENT_KEEPALIVE` | ❌ | Интервал keepalive (сек) | `25` | > 💡 Полный список переменных: [wg-easy Environment Variables](https://github.com/wg-easy/wg-easy#environment-variables) --- ## 🎛️ Управление контейнером ```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 # 🗑️ Удаление контейнера (данные в volume сохранятся) docker rm -f wg-easy # 🔄 Обновление образа docker pull ghcr.io/wg-easy/wg-easy docker stop wg-easy && docker rm wg-easy # Затем повторите команду запуска из раздела "Быстрый старт" ``` ### 📁 Расположение данных ``` ~/wg-easy/data/ ├── wg0.conf # Конфигурация сервера WireGuard └── clients/ # Конфигурации клиентов (.conf файлы) ``` > 💾 Регулярно делайте бэкап этой директории! --- ## 📱 Подключение клиентов ### Через веб-интерфейс 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/Linux** | Установите `wireguard-tools`, скопируйте `.conf` в `~/.wireguard/`, запустите `wg-quick up wg0` | --- ## 🔒 Безопасность ### ✅ Рекомендации - Используйте **надёжный пароль** для веб-интерфейса - Настройте **Fail2Ban** для защиты от брутфорса: ```bash sudo apt install fail2ban -y ``` - Ограничьте доступ к порту `51821` по IP (если возможно): ```bash # Пример для UFW (разрешить только с доверенного IP) sudo ufw allow from 203.0.113.10 to any port 51821 proto tcp ``` - Регулярно обновляйте Docker-образ: ```bash watchtower или ручной docker pull + restart ``` ### 🛡️ Настройка фаервола ```bash # UFW (Ubuntu/Debian) sudo ufw allow 51820/udp # WireGuard трафик sudo ufw allow 51821/tcp # Веб-интерфейс (опционально ограничить по IP) sudo ufw enable # firewalld (CentOS/RHEL) sudo firewall-cmd --add-port=51820/udp --permanent sudo firewall-cmd --add-port=51821/tcp --permanent sudo firewall-cmd --reload ``` ---