Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

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

125948
9 минут чтения
Средний рейтинг статьи: 3.5

Инструкция обновлена 14.10.2024

WireGuard — open-source-проект с открытым исходным кодом, который позволяет легко и удобно настраивать шифрованные туннели.

Коротко, чем мне нравится WireGuard:

  • Скорость работы (минимальная задержка, максимальная пропускная способность)
  • Удобство установки и настройки

Из минусов:

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

В сети много различных гайдов и инструкций по настройке и установке. Для ознакомления рекомендую следующее:

В этой инструкции я опишу простые способы начала использования WireGuard и интересные решения — побольше примеров и практики, поменьше воды и теории.

Установка сервера через маркетплейс Timeweb Cloud

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

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

Abc4523e 4ff7 4d41 9e96 C0f9767aba6a

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

VDS и VPS

Гибкие виртуальные серверы с почасовым
биллингом по всему миру: Россия, Азия и Европа.

Настройка и подключение 

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

Image4

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

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

Image1

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

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

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

Android

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

Image9

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

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

Image7

Windows 

Для подключения нужно:

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

Image8

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

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

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

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

Проверка скорости

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

    

Image6

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

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

Image3

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

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

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

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

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

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

    

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

    

И запустим команду:

    

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

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

    

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

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

    

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

    

Важно:

  • WG_HOST — внешний IP-адрес вашего сервера.
  • PASSWORD_HASH — зашифрованный пароль от веб-интерфейса WireGuard. Здесь нужно установить пароль созданный выше, без кавычек, но все знаки $ заменить на $$ (задвоить).

Сохраняю изменения, после чего выполняю команду для запуска:

    

После запуска можно проверить и открыть в браузере по адресу http://IP-адрес:51821, в моем случае: http://194.87.220.159:51821.

В итоге получим тот же знакомый web-интерфейс.

Сам проект называется wg-easу. В репозитории можно ознакомиться с более подробными настройками.

Дополнительно есть возможность в разделе 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-переменную и перезапустить контейнер.

    

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

    

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

    

Разверните WireGuard в облаке Timeweb Cloud

Cloud MSK 15

477 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
NVMe
15 ГБ
Канал
1 Гбит/с
Публичный IP
Cloud MSK 30

657 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
NVMe
30 ГБ
Канал
1 Гбит/с
Публичный IP

Итоги 

На мой взгляд, WireGuard—  один из простых и удобных в использовании сервисов для безопасного доступа в сеть и построения шифрованных каналов связи. Для разных задач я настраивал и использовал PPTP, SSTP, L2TP/IPsec и другие — у каждого есть свои плюсы и минусы. Для каждой задачи нужно подбирать наиболее подходящие инструменты. На данный момент Wireguard справляется со всем необходимыми для меня задачами и не доставляет проблем. 

Проект активно развивается, все больше различных устройств поддерживают Wireguard, а некоторые команды разработчиков создают еще дополнительные UI для расширения конфигурации и более удобного управления через GUI (например, проект NetMaker). 

125948
9 минут чтения
Средний рейтинг статьи: 3.5
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server