
Пошаговый гайд по установке WireGuard + WGDashboard в Docker. Создаём свой приватный VPN за 15 минут с красивым веб-интерфейсом для управления пользователями. Полная альтернатива коммерческим VPN-сервисам — только ваш трафик, только ваши правила.
Помните времена, когда для доступа к домашней сети или безопасного серфинга в кафе нужно было настраивать сложные OpenVPN-сертификаты? Сейчас всё проще. WireGuard — это современный, быстрый и безопасный VPN-протокол, который работает в разы быстрее предшественников. А с Docker и WGDashboard его настройка становится делом 15 минут.
В этой статье я покажу, как поднять собственный VPN-сервер на WireGuard с удобным веб-интерфейсом. Это пригодится, чтобы:
- Безопасно выходить в интернет из публичных Wi-Fi-сетей в кафе или аэропортах.
- Обходить региональные блокировки (ваш трафик пойдёт через сервер в нужной стране).
- Получить доступ к домашней сети из любой точки мира — например, к вашему медиасерверу или Nextcloud.
- Скрыть свой IP-адрес от сайтов и рекламных трекеров.
И главное — это полностью ваш сервер. Никто не логирует ваши действия, не продаёт данные рекламодателям и не ограничивает скорость.
Почему WireGuard, а не OpenVPN
WireGuard — это не просто очередной VPN-протокол. Это полностью переосмысленный подход к VPN:
|
Характеристика
|
WireGuard
|
OpenVPN
|
|---|---|---|
|
Скорость
|
~1000 Мбит/с
|
~200 Мбит/с
|
|
Кодовая база
|
~4000 строк
|
~70000+ строк
|
|
Настройка
|
5 строк конфига
|
Сертификаты, CA, сложные ключи
|
|
Потребление CPU
|
Минимальное
|
Высокое
|
|
Переподключение
|
Мгновенное
|
5-10 секунд
|
WireGuard встроен прямо в ядро Linux начиная с версии 5.6. Это значит, что он работает на уровне операционной системы, а не как отдельное приложение, что даёт максимальную производительность.
Что мы будем собирать
Мы развернём три компонента:
- WireGuard — сам VPN-сервер.
- WGDashboard — веб-интерфейс для управления пользователями. Можно добавлять и удалять клиентов, скачивать конфиги, смотреть статистику трафика.
- Docker + Docker Compose — всё это будет работать в контейнерах.
Всё это поднимется из одного файла docker-compose.yml. Никаких ручных правок конфигов, никаких сложных команд.
Подготовка: что нужно
- Сервер (VPS) или домашний компьютер с белым IP-адресом. Если у вас нет VPS, можно взять недорогой сервер у любого провайдера (например, DigitalOcean, Vultr, Hetzner или российские TimeWeb, RuVDS).
- Ubuntu 22.04 / Debian 11 или новее (хотя подойдёт любой дистрибутив с Docker).
- Открытый порт 51820/udp в фаерволе (это стандартный порт WireGuard).
- Docker и Docker Compose установленные.
Если вы уже ставили Docker по моему предыдущему гайду, считайте, что полдела сделано.
Шаг 1. Устанавливаем Docker и Docker Compose
Если Docker ещё не установлен, выполняем:
sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
sudo usermod -aG docker $USER
Выходим и заходим обратно, чтобы применить права.
Шаг 2. Создаём структуру и файл docker-compose.yml
Создаём папку для проекта:
mkdir -p /opt/wireguard-dashboard
cd /opt/wireguard-dashboard
Создаём файл docker-compose.yml:
version: '3.8'
services:
wireguard:
image: weejewel/wg-easy:latest
container_name: wg-easy
restart: unless-stopped
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv4.ip_forward=1
environment:
- WG_HOST=your-server-ip-or-domain.com
- PASSWORD=your-admin-password
- WG_PORT=51820
- WG_DEFAULT_ADDRESS=10.8.0.x
- WG_DEFAULT_DNS=1.1.1.1
- WG_ALLOWED_IPS=0.0.0.0/0
- WG_PERSISTENT_KEEPALIVE=25
volumes:
- ./wireguard:/etc/wireguard
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
networks:
- vpn_network
networks:
vpn_network:
driver: bridge
Что здесь важно:
|
Переменная
|
Описание
|
|---|---|
|
WG_HOST
|
Ваш внешний IP-адрес или домен. Это самое важное поле. Например: vpn.example.com или 123.123.123.123
|
|
PASSWORD
|
Пароль для входа в веб-интерфейс. Обязательно придумайте надёжный
|
|
WG_PORT
|
Порт WireGuard (по умолчанию 51820). Можно оставить
|
|
WG_DEFAULT_DNS
|
DNS-сервер. 1.1.1.1 — это Cloudflare, быстрый и приватный
|
|
WG_ALLOWED_IPS
|
0.0.0.0/0 означает, что весь трафик клиента пойдёт через VPN (full-tunnel)
|
|
WG_DEFAULT_ADDRESS
|
Диапазон IP-адресов для клиентов. 10.8.0.x — стандартный
|
Внимание!
Замените your-server-ip-or-domain.com на реальный IP или домен вашего сервера. Если ошибётесь, конфиги для клиентов не будут работать.
Шаг 3. Запускаем
Одной командой поднимаем всё:
docker compose up -d
Проверяем, что контейнер запустился:
docker compose ps
Вы должны увидеть wg-easy со статусом Up.
Шаг 4. Заходим в веб-интерфейс
Открываем браузер и переходим по адресу:
http://ваш-ip-сервера:51821
Вводим пароль, который вы указали в переменной PASSWORD.
Что вы увидите:
- Красивую панель со списком клиентов.
- Кнопку "New Client" — создание нового пользователя.
- QR-коды для быстрого подключения с телефона.
- Скачивание конфигов для всех устройств.
- Статистику трафика по каждому клиенту.
Шаг 5. Подключаем устройства
Для Windows / macOS / Linux
- Скачайте официальный WireGuard-клиент с сайта wireguard.com.
- В веб-интерфейсе нажмите "New Client", дайте имя (например, "Мой ноутбук").
- Нажмите на значок скачивания (📥) рядом с клиентом — скачается
.conf-файл. - Откройте этот файл в клиенте WireGuard и нажмите "Connect".
Для Android / iPhone
- Установите приложение WireGuard из магазина приложений.
- В веб-интерфейсе создайте клиента и нажмите на QR-код.
- В приложении нажмите "Сканировать QR-код" и наведите камеру.
- Нажмите "Connect".
Готово! Всё работает. Весь ваш трафик идёт через ваш личный VPN-сервер.
Шаг 6. Настройка фаервола (важно!)
Если вы используете VPS, на нём обычно стоит фаервол (UFW) или iptables. Нужно обязательно открыть порты:
sudo ufw allow 51820/udp
sudo ufw allow 51821/tcp
sudo ufw reload
Если вы используете облачного провайдера (например, DigitalOcean, Vultr, TimeWeb), не забудьте открыть порты в панели управления (там есть отдельный раздел "Firewall" или "Security Groups").
|
Порт
|
Протокол
|
Назначение
|
|---|---|---|
|
51820
|
UDP
|
WireGuard VPN
|
|
51821
|
TCP
|
Веб-интерфейс WGDashboard
|
Дополнительно: настройка автозапуска и обновлений
Контейнер уже настроен с restart: unless-stopped, так что он будет запускаться автоматически при перезагрузке сервера.
Чтобы обновить WGDashboard до новой версии:
cd /opt/wireguard-dashboard
docker compose pull
docker compose up -d
Всё обновится без потери настроек, потому что конфиги хранятся в томе ./wireguard.
Дополнительно: домен и HTTPS (для безопасности)
Если вы хотите доступ к веб-интерфейсу по HTTPS (рекомендую), можно поставить Nginx Proxy Manager или Caddy перед WGDashboard.
Самый простой способ — использовать Caddy в том же docker-compose.yml:
services:
caddy:
image: caddy:latest
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
networks:
- vpn_network
volumes:
caddy_data:
Тогда интерфейс будет доступен по https://vpn.example.com с автоматическим SSL-сертификатом.
Итог: что вы получили
|
Что у вас есть
|
Зачем это
|
|---|---|
|
Собственный VPN-сервер
|
Безопасный доступ к интернету из любой точки мира
|
|
WGDashboard
|
Удобное управление пользователями, QR-коды, статистика
|
|
Полный контроль
|
Никаких логов, никаких ограничений скорости, только ваш трафик
|
|
Docker-контейнер
|
Лёгкое обновление, перенос, откат
|
Вы только что создали свой частный VPN за 15 минут. Это надёжнее, дешевле (в долгосрочной перспективе) и приватнее, чем любые платные VPN-сервисы.
Что почитать дальше (ссылки на ваши статьи)
- Docker для начинающих — если вы только знакомитесь с контейнерами.
- Как поднять Nextcloud — теперь ваш VPN открывает доступ к вашему облаку из любой точки мира.
- Домашний медиасервер на Docker — с VPN вы сможете смотреть свои фильмы даже из отпуска.
❓ Частые вопросы
Сколько это стоит?
Если вы используете домашний сервер с белым IP — бесплатно. Если VPS — от $4–6 в месяц (это дешевле любого платного VPN).
Можно ли подключить несколько устройств?
Да, сколько угодно. WGDashboard позволяет создавать неограниченное количество клиентов.
Будет ли работать в Китае / ОАЭ / Турции?
WireGuard сам по себе часто блокируется, но вы можете использовать маскировку (например, через Shadowsocks поверх WireGuard) или сменить порт на 443/udp.
Можно ли сделать split-tunneling (чтобы только часть трафика шла через VPN)?
Да, в конфиге клиента можно изменить AllowedIPs на нужные подсети. Например, 192.168.1.0/24 — только для доступа к домашней сети.
Как удалить пользователя?
В веб-интерфейсе WGDashboard просто нажмите на корзину рядом с клиентом. Конфиг сразу перестанет работать.
Теперь у вас есть не просто VPN, а целая инфраструктура для приватного и безопасного интернета. И всё это — под вашим полным контролем. 🛡️



