Как начать работу с WireGuard: подробная инструкция

    Команда Simple-Server
    03.06.2026
    9 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Установка сервера через маркетплейс Simple-Server

    В панели идем в Облачные серверыДобавить. Выбираем локацию Нидерланды или Германия, после в Маркетплейсе выбираем СетьWireguard GUI.

    Выбираю Нидерланды, убираю бэкапы, нажимаю «Заказать сервер ».

    Необходимо минут 5 на создание виртуальной машины и установку ПО, затем придет сообщение на почту, что сервер готов к работе.

    Перейду по адресу из письма и войду в интерфейс со своим паролем.

    Web-интерфейс — минималистичный и интуитивно понятный.

    Добавляю новых клиентов для подключения с Android и Windows PC.

    Доступны два способа подключения к серверу с клиентского устройства:

    1. QR-код — удобно с мобильного устройства.
    2. Config-файл — для ПК проще загрузить файл конфигурации.

    На скриншоте выше видны кнопки для открытия QR-кода и скачивания конфигурационного файла.

    Для запуска на смартфоне нужно скачать с GooglePlay официальный клиент Wireguard.

    Далее нужно открыть приложение > отсканировать QR-код с web-интерфейса > нажать «Подключиться ».

    Проверяю IP-адрес на сайте 2ip.ru. Вижу IP-адрес сервера — значит, все работает.

    • Скачать клиент для Windows можно с официального сайта.
    • В веб-интерфейсе скачать конфигурационный файл.
    • Запустить клиент > Добавить туннель > Выбрать файл -> Нажать «Подключить ».

    В целом, это все, уже можно пользоваться. Весь процесс занял около 15 минут:

    • создание сервера,
    • скачивание клиентов,
    • подключение с Android- и Windows-клиентов.

    Еще есть много тонких настроек конфигурации, но на практике хватает способа, который показан выше с минимальными настройками и затратами. Как правило, WireGuard можно один раз поднять, настроить и забыть — работает стабильно.

    Информации выше достаточно для того, чтобы легко начать пользоваться, а дальше я буду описывать дополнительные функции и интересные решения.

    Для начала проверю скорость интернета с самого сервера. Для этого придется установить инструмент Speedtest CLI:

    curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash sudo apt-get install speedtest

    Скорость 194 Mbs — отлично.

    Теперь проверим на Windows PC с подключением WireGuard:

    172 Mbs — неплохо (ожидал на уровне 180, но вполне нормально).

    Установка сервера через docker-compose

    В целом, решение c WebGUI и установка через маркетплейс Simple-Server в одну кнопку очень упрощает процесс, но хочется больше контроля и удобства для обслуживания. Например, может требоваться установка на другом хостинге или на своем удаленном сервере, где нет маркетплейса.

    Так как мне очень нравится Docker, буду использовать его для установки точно такого же WireGuard с веб-интерфейсом.

    Начинаю с чистой чистой системы: Создать сервер > Ubuntu 24.04.

    После создания и подключения к серверу нужно обновить пакеты и установить docker и docker-compose:

    apt update && apt upgrade -y curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh

    Следующим шагом нужно создать безопасный зашифрованный пароль для веб-интерфейса. Для этого скачаем образ wg-ease:

    docker pull ghcr.io/wg-easy/wg-easy docker run -it ghcr.io/wg-easy/wg-easy wgpw YOUPASSWORD

    Вместо YOURPASSWORD подставьте свой пароль.

    На выходе получаем свой пароль в зашифрованном виде, примерно такого формата:

    $2a$12$BGXo0fIV4s0gVEaNQDggpeVz01MhlG8DzSLfs2tbvuKTSoaXoKi1G

    Оригинальный пароль нужно запомнить и сохранить, обратно расшифровать вы его уже не сможете (но пароль можно поменять, настройки при этом сохраняются).

    Создадим новый файл compose.yaml:

    В редакторе вставляю следующую конфигурацию:

    services: wg-easy: ```bash image: ghcr.io/wg-easy/wg-easy container_name: wg-easy environment: LANG: ru WG_HOST: '194.87.220.159' # Hostname or server white IP address PASSWORD_HASH: $2a$12$BGXo0fIV4s0gVEaNQDggpeVz01MhlG8DzSLfs2tbvuKTSoaXoKi1G MAX_AGE: 15 volumes: - ./wireguard:/etc/wireguard ports: - 51820:51820/udp - 51821:51821/tcp cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv6.conf.all.disable_ipv6=0 - net.ipv4.ip_forward=1 - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped * `WG_HOST` — внешний IP-адрес вашего сервера. * `PASSWORD_HASH` — зашифрованный пароль от веб-интерфейса WireGuard. Здесь нужно установить пароль, созданный выше, без кавычек; каждый символ «$» в хеше удвоить (например, `$2a$…` → `$2a$…`). Сохраняю изменения, после чего выполняю команду для запуска: После запуска можно проверить и открыть в браузере по адресу `http://IP-адрес:51821`, в моем случае: `http://194.87.220.159:51821`. В итоге получим тот же знакомый web-интерфейс. Сам проект называется `wg-easу`. В [репозитории](https://github.com/wg-easy/wg-easy) можно ознакомиться с более подробными настройками. Дополнительно есть возможность в разделе `environment` docker-compose файла,**** изменить некоторую конфигурацию: * `PASSWORD_HASH` — зашифрованный пароль для WebGUI. * `WG_HOST` — hostname или IP-адрес. * `WG_DEVICE` — устройство Ethernet, через которое должен пересылаться трафик WireGuard. * `WG_PORT` — общедоступный UDP-порт сервера (51280). * `WG_MTU` — MTU, который будут использовать клиенты. Сервер использует WG MTU по умолчанию. * `WG_PERSISTENT_KEEPALIVE` — значение в секундах для проверки соединения. Если это значение равно 0, то соединения не будут поддерживаться в рабочем состоянии. * `WG_DEFAULT_ADDRESS` — диапазон адресов, которые будут выдаваться клиентам. * `WG_DEFAULT_DNS` — DNS-сервер. * `WG_ALLOWED_IPS` — разрешенные IP-адреса, которые будут использовать клиенты. * `MAX_AGE` — максимальное время сеансов веб-интерфейса в минутах. Значение по умолчанию (0) означает, что сеанс будет продолжаться до тех пор, пока браузер не будет закрыт. * `UI_TRAFFIC_STATS` — отображение активной статистики соединения по каждому клиенту. По умолчанию выключено, для включения необходимо установить значение `true`. * `UI_CHART_TYPE` — вид отображения статистики от 1 до 3 (обычно 3 — самый простой удобный формат в виде бара). Данный способ установки позволяет удобнее управлять конфигурацией, перезапускать, переносить и править настройки. Также становится удобнее запускать на этом сервере другие сервисы, тоже в Docker, при необходимости. ## Доступ к локальным ресурсам при установленном подключении Этот пункт редко встречается в инструкциях, но мне кажется будет полезным. При подключении к WireGuard весь трафик пойдет через туннель и к локальным ресурсам напрямую обратиться не получится В конфигурации WireGuard есть значение `AllowedIPs`, где можно указать, какие адреса пойдут через WG. По умолчанию это `0.0.0.0.0/0`, т.е. весь трафик идет через туннель. Для доступа к локальным ресурсам приходится делать наоборот, и все адреса, за исключением нужных (серого списка IP-адресов), добавлять в `AllowedIPs`. Для этого в файле `docker-compose.yml` можно добавить `environment`-переменную и перезапустить контейнер. ```bash environment: WG_ALLOWED_IPS: '0.0.0.0/5, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 8.8.8.8/32'

    А в WireGuard WebGUI из маркетплейса перезапустить контейнер с добавлением флага:

    -e WG_ALLOWED_IPS='0.0.0.0/5, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 8.8.8.8/32'

    Или на клиентском устройстве отредактировать конфигурационный файл подключения:

    [Peer] PublicKey = PublicKey PresharedKey = PresharedKey AllowedIPs = 0.0.0.0/5, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 8.8.8.8/32 Endpoint = Endpoint

    Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны