Главная >> Инструкции >> Простая настройка WireGuard Linux

Простая настройка WireGuard Linux

WireGuard - это набирающий популярность VPN сервер, который работает на уровне ядра Linux. Это позволяет ему обрабатывать пакеты намного быстрее по сравнению с OpenVPN. С помощью WireGuard вы можете создать частную виртуальную сеть и объединить компьютеры, которые находятся в разных домах или даже городах, точно так же как и с помощью OpenVPN.

В большинстве инструкций предлагается всё делать вручную, устанавливать программу, генерировать конфигурационные файлы, однако если вы не хотите в этом разбираться и вам достаточно стандартных настроек, то всё можно сделать гораздо проще. В этой статье будет рассмотрена простая установка WireGuard на примере Ubuntu.


Содержание статьи

Настройка WireGuard сервера в Linux

Существует скрипт для быстрого развертывания WireGuard. Он поддерживает не только Ubuntu, но и Debian, Fedora, CentOS, Artch Linux и Oracle Linux. Этот скрипт работает аналогично скрипту для простого развертывания OpenVPN. Программа задаст несколько вопросов, установит WireGuard и сгенерирует конфигурационные файлы для сервера и клиента. После установки с помощью скрипта можно добавлять новых клиентов, ограничивать доступ для старых или полностью удалить WireGuard. Таким образом, можно детально не разбираться самому как настроить WireGuard.

Выполните следующую команду для того чтобы скачать последнюю версию скрипта с GitHub:

curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh

Затем дайте файлу скрипта права на выполнение:

chmod +x wireguard-install.sh

Прежде чем запускать скрипт желательно посмотреть публичный IP вашего сервера. Для этого можно воспользоваться командой:

ip -br a

Команда отобразит список сетевых интерфейсов и их IP адреса. Как правило, реальный сетевой интерфейс имеет состояние UP. В данном случае это ens0. Если вы хотите подключатся к VPN серверу из интернет или обойти блокировки, вам необходимо установить его на VPS или другой сервер в сети. Список VPS для VPN можно найти здесь.

Для запуска скрипта выполните команду:

./wireguard-install.sh

Первые два вопроса будут о внешнем IP адресе и сетевом интерфейсе, которые вы посмотрели ранее. Если у вас только один интерфейс, скорее всего, программа определит их верно. Если же несколько, возможно придется поправить:

Далее нужно выбрать имя сетевого интерфейса для WireGuard, можно оставить по умолчанию:

Следующие два вопроса - желаемый IP адрес сервера WireGuard в создаваемой виртуальной сети для IPv4 и IPv6. По умолчанию скрипт предлагает использовать 10.66.66.1:

На следующем шаге нужно настроить порт, на котором будет доступен WireGuard:

WireGuard умеет менять настройки DNS клиентов при подключении. На этом шаге можно указать DNS серверы, которые следует использовать:

После этого нажмите любую клавишу для того чтобы запустить установку необходимых пакетов и создание конфигурационных файлов:

После того как установка завершится скрипт предложит создать конфигурацию для первого клиента. Достаточно ввести имя. Оно не должно быть длиннее 15 символов:

Далее надо указать желаемый IP адрес клиента IPv4 и IPv6. Здесь IP адрес задается при создании конфигурации и для каждого клиента всегда будет статическим:

После этого скрипт сообщит что конфигурация создана и вы можете скачать её на свой компьютер или отсканировать QR код на телефоне:

Настройка сервера WireGuard завершена. Теперь можно переходить к настройке клиента.

Настройка клиента WireGuard

На компьютере с которого вы хотите подключится к WireGuard его тоже необходимо установить. В Ubuntu и Debian команда установки будет выглядеть следующим образом:

sudo apt install wireguard

Кроме того, если в системе не установлены пакеты resolvconf и iptables их надо установить:

sudo apt install resolvconf iptables

После этого переместите скачанный конфигурационный файл клиента WireGuard в папку /etc/wireguard и переименуйте в wg0.conf. Имя конфигурационного файла должно соотвествовать имени сетевого интерфейса, который будет создан WireGuard. Например:

sudo mv ~/wg0-client-losst.conf /etc/wireguard/wg0.conf

Или вы можете просто скопировать содержимое файла на сервере и вставить его в локальный  /etc/wireguard/wg0.conf. Файл довольно небольшой, в отличии от OpenVPN. Теперь вы можете подключится к серверу используя команду wg-quick:

wg-quick up wg0

Вы можете убедится что виртуальная сеть работает, попробовав пинговать VPN сервер по внутреннему адресу 10.66.66.1. Также можно проверить что интернет тоже работает:

По умолчанию весь трафик клиента перенаправляется через VPN сервер. Это настроено в конфигурационном файле клиента с помощью директивы AllowedIPs. Здесь указано 0.0.0.0, что означает все адреса, однако вы можете изменить эти настройки и перенаправлять только нужный трафик, или вообще не перенаправлять. Посмотреть состояние подключения WireGuard можно командой:

sudo wg show

Если вы хотите чтобы WireGuard подключался к серверу автоматически после загрузки системы можно добавить его в автозагрузку systemctl:

sudo systemctl enable wg-quick@wg0.service

Для запуска используйте:

sudo systemctl start wg-quick@wg0.service

А состояние можно проверить с помощью команды status:

sudo systemctl status wg-quick@wg0.service

Теперь вы знаете как выполняется настройка клиента WireGuard.

Выводы

В этой статье мы рассмотрели как выполняется простая настройка WireGuard в Linux. Как видите, не обязательно разбираться в тонкостях работы с программой для того чтобы установить её на сервер. По моим субъективным ощущениям интернет с WireGuard быстрее по сравнению с OpenVPN. А каким VPN вы пользуетесь? Напишите в комментариях!

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

14 комментариев к “Простая настройка WireGuard Linux”

  1. Вот почему они не сделают нормальный GUI клиент для Линуксов?
    Под виндой и андроидом все предельно просто - установил клиент, в несколько кликов добавил конфиг - все, готово.
    Под линухом же сплошное трахомозгие, степень которого зависит от того, на каком дистрибутиве вы решили осесть. =\

    Ответить
  2. Главный вопрос не то какой vpn сервер выбрать и как его настроить, а то как найти безопасный хостинг для сервера и как оплатить его.

    Ответить
  3. Из самых простых советую aeza. Компания российская, цоды есть за границей.
    Сейчас можно взять простейший сервер в Амстердаме за 99р в месяц. Я там разворачивал сервера, впн нормально работает, блокировок нет.
    Если есть желание заморачиваться то тогда free tier от амазона AWS, но надо карту делать и пополнять её долларами.

    Ответить
  4. только все сервисы проверки ip адресов показывают, что их сервера находятся не в Амстердаме, а в России, тп говорит, что данные скоро обновятся и будет показывать Амстердам, но спустя два месяца тестирования ничего не поменялось и сайты которые блокируют загрузку с ip адресов России и дальше продолжают это делать.

    Ответить
  5. вопрос можно? все настроил, подключается, пингуется, запускаю wineguard, но в браузере открывает все равно внешний ip рф, и не открывает залоченные сайты и приложения..

    Ответить
  6. Почему-то ipv6 тест не проходит, хотя поставщик предоставляет такую возможность, как это можно исправить без переустановки системы

    Ответить
  7. Добрый день!
    По Вашей инструкции настраиваю клиента на Убунту и после команды wg-quick up wg0 всё поднимается как должно, у меня все отображется буква в букву как у вас в статье на скриншотах ( кроме строк связанных с АйПи 6, я поднимал сервер другим скриптом, там этого не было). И есть мааааленькая проблема: комп не выходит в инет, не пингуется даже сервер. Всё начинает снова работать после сворачивания процесса командой wg-quick down wg0. В настройках конфиг файла накосячить не мог, т.к. просто копировал-вставил данные полностью, + под этим же конфигом хожу через ВПН под второй системой на ноуте, там всё работает как часы. То есть, чисто логически, предполагаю, что проблема именно на клиенте Убунту. Просьба помочь и подсказать: в чем может быть проблема? если можно простым языком, т.к. я в линуксоводстве совсем зеленый еще 🙂

    Ответить
  8. Тупая статья. Установить и дурак может, инструкций в нэте дофига. Какой смысл создавать только одного клиента, которого он после установки предлагает создать???!!!! Получается для каждого нового клиента надо снова запускать скрипт установки???!!!
    У тебя что телефона нет или ноута, у которого должен быть другой УНИКАЛЬНЫЙ IP или ты будешь пихать одну и туже конфигурацию во все устройства? Какой смысл арендовать сервак для одного устройства???

    УДАЛИ СТАТЬЮ НЕ СМУЩАЙ ЛЮДЕЙ, они тратят на неё свой время.

    Ответить
    • Да, запускать скрипт установки ещё раз. Если скрипт запускается и WireGuard уже был установлен раньше, то он выведет меню управления конфигурациями клиентов. В том числе там есть добавление новых клиентов и отзыв сертификатов существующих.

      Ответить
  9. Можно ли настроить клиент таким образом, чтобы запросы только на определённые домены шли через VPN, а остальные - напрямую?

    Ответить

Оставьте комментарий