Files
2026-04-26 11:02:26 +03:00

6.7 KiB

🛡️ WireGuard Easy — Быстрый старт

Простое развёртывание WireGuard VPN с веб-интерфейсом через Docker.


📋 Требования

Компонент Минимум
ОС Ubuntu 20.04+ / Debian 11+ / CentOS 8+
CPU 1 ядро
RAM 256 МБ
Внешний IP Статический (обязательно)
Docker 20.10+

🚀 Быстрый старт

1️⃣ Установка Docker

# Ubuntu/Debian
apt update && apt upgrade -y
apt install -y docker.io
systemctl enable --now docker

# Проверка
docker --version

2️⃣ Создание рабочей директории

mkdir -p ~/wg-easy && cd ~/wg-easy

3️⃣ Генерация хеша пароля

⚠️ Сначала сгенерируйте хеш — он понадобится на следующем шаге.

docker run --rm ghcr.io/wg-easy/wg-easy:latest wgpw ВАШ_ПАРОЛЬ

Скопируйте вывод (строку вида $2b$12$...) — это и есть PASSWORD_HASH.


4️⃣ Запуск контейнера

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

🎛️ Управление контейнером

# Статус
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          # Данные клиентов (веб-интерфейс)

💾 Регулярно делайте резервную копию этой директории!

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 → «+» → «Импорт из файла / QR»
iOS WireGuard → «+» → «Сканировать QR» или «Импортировать»
Windows Скачать клиент → «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-образ
  • Делайте резервные копии данных

🛡️ Настройка фаервола

# 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
# firewalld (CentOS/RHEL)
sudo firewall-cmd --add-port=51820/udp --permanent
sudo firewall-cmd --add-port=51821/tcp --permanent
sudo firewall-cmd --reload

🔐 Защита от брутфорса (Fail2Ban)

sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

🔄 Автообновление образа (Watchtower)

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 на хосте
Ошибка хеша пароля Убедитесь, что хеш обёрнут в одинарные кавычки