Для всех инструкций у вас должен быть на руках конфиг от человека, который держит Wireguard сервер.

Конфиг или файл конфигурации - это файл, содержащий в себе настройки для подключения к серверу. Он удобен тем, что его можно просто импортировать в приложение и оно настроится автоматически.

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

Указание DNS сервера в конфиге клиента необходимо для iOS и Windows. А в Linux это скорее создаст проблемы с resolvconf.

Если у вас есть исправления/дополнения к этой инструкции, пишите в комментариях.

Android

  1. Скачать приложение Wireguard из Google Store Оно также есть в F-Droid

  2. Теперь нужно открыть приложение и добавить конфиг. В приложении нажмите на кнопку с плюсом и выберите вариант “Import from file or archive” wg-android-2.jpg

  3. Перейдите в директорию, где у вас лежит файл с конфигурацией. Например, если вы его скачали из телеграма, то Downloads - Telegram. Выбирайте файл “$name.conf” wg-android-3.jpg Конфигурация импортирована wg-android-4.jpg

  4. Для запуска нажмите на переключатель около импортированного конфига. Теперь весь трафик с телефона ходит через Wireguard туннель и, скорее всего, у вас отобразится значок VPN в трее. wg-android-5.jpg

  5. Проверьте, что интернет работает и трафик идёт через VPN. Для этого можно воспользоваться одним из сайтов, показывающих ваш внешний IP адрес, например https://ifconfig.co/

Обратите внимание на страну, должна отобразиться та, в которой находится сервер с Wireguard - у меня это Финляндия. wg-android-6.jpg

Для включения и выключения VPN вам придется заходить в приложение и дергать переключатель. Что бы не заходить каждый раз в приложение, вынесите переключатель в быстрый доступ. Например, в MIUI опустите панель состояния и выберите редактировать (значок листа бумаги с ручкой). Из нижней панели выберите значок Wireguard, нажмите на него и зажав переместите куда удобно. wg-android-7.jpg

Разделение трафика по приложениям на Android

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

Настраивается на изи, у вас должен быть уже работающий конфиг:

  1. Заходим в конфиг и тыкаем иконку редактирования (иконка карандаш)
  2. В Interface есть настройка “All Aplications”
  3. Открывая её, видим список всех приложений и выбор сценария “Exclude” или “Include”
  4. Выбираете приложения, выбираете сценарий и нажимаете кнопку “Include\Exclude N app”
  5. Сохраняете конфиг (иконка дискеты)

Теперь при запуске выбранного конфига трафик будет ходить так, как выбрали вы.

Для сброса всех выбранных приложений промотайте до кнопки “Toggle All”. Первое нажатие на неё сбрасывает все выбранные приложения, второе - выделяет все.

Примеры сценариев:

  1. Выбираем Include и только приложения, которые заблокированы в вашей стране. Для них трафик через туннель, для всего остального через мобильную сеть/wifi.
  2. Вы хотите, чтобы весь трафик ходил через туннель, но часть приложений не пускает с европейского IP. Выбираем Exclude и эти приложения. Для этих приложений трафик как обычно, всё остальное в туннеле.
  3. Вы за пределами РФ, WG-сервер в РФ. И вы хотите получить повестку на госуслугах смотреть какой-нибудь Кинопоиск со смартфона, но при этом остальной трафик пускать через РФ нет смысла. Include только для Кинопоиска.

Если разделять, нужно не по приложениям, а по сайтам в браузере. Тут можно установить пару браузеров, и один из них пускать через туннель.

iPhone

  1. Скачать приложение Wireguard из App Store

  2. Теперь нужно открыть приложение и добавить конфиг. В приложении нажмите на кнопку Add a Tunnel (Добавить туннель) по центру или иконку с плюсом справа сверху и выберите вариант “Import from file or archive” (Создать из файла или архива) wg-iphone-1

  3. Перейдите в директорию, где у вас лежит файл с конфигурацией. У файла конфигурации будет логотип Wireguard. Выбираете конфиг и разрешаете iOS “Добавление конфигурации VPN”. wg-iphone-2

  4. Проверьте, что в вашем конфиге есть настройка DNS. Без этого в iOS не будет нормально работать туннель, при включенном туннеле. В приложении Wireguard нажмите “Править”. Если поле “DNS-серверы” заполнено, ничего менять не нужно. Если нет, то добавьте ip адрес какого-нибудь DNS сервера, например 8.8.8.8 и 1.1.1.1. Можно один, можно несколько через запятую. wg-iphone-5

  5. Для запуска нажмите на переключатель около импортированного конфига. Теперь весь трафик с телефона ходит через VPN, и отобразится значок VPN в трее. wg-iphone-4

  6. Проверьте, что интернет работает и трафик идёт через VPN. Для этого можно воспользоваться одним из сайтов, показывающих ваш внешний IP адрес, например https://ifconfig.co/

Обратите внимание на страну, должна отобразиться та, в которой находится сервер с Wireguard - у меня это Финляндия. wg-iphone-6

Для включения и выключения VPN, вам придется заходить в приложение и дергать переключатель. Или делать это через Настройки - VPN. В iOS нет способа из коробки как добавить ярлык в “Пункт управления”.

Windows

  1. Скачайте и установите приложение Wireguard с официального сайта

  2. Нажмите “Import tunnel(s) from file” и выберите файл с конфигурацией. wg-windows-1 wg-windows-2

  3. Проверьте, что в вашем конфиге есть настройка DNS. Без этого туннель в Windows не будет нормально работать. В Wireguard приложении нажмите “Edit”, и в блоке Interface должен быть параметр DNS. Если он есть, ничего менять не нужно. Если нет, то после строки Address добавьте строку

DNS = 8.8.8.8, 1.1.1.1

После этого нажмите Save wg-windows-4 Можно указать ip адреса публичных или ваших частных DNS серверов на ваш вкус. Можно один, можно несколько через запятую.

  1. Туннель добавлен и настроен. Для запуска нажмите “Activate”. Теперь весь трафик с компьютера ходит через VPN wg-windows-3

  2. Проверьте, что интернет работает, и трафик идёт через VPN. Для этого можно воспользоваться одним из сайтов, показывающих ваш внешний IP адрес, например https://ifconfig.co/

Обратите внимание на страну, должна отобразиться та, в которой находится сервер с Wireguard - у меня это Финляндия. wg-windows-5

Запускать туннель можно двумя способами:

  • Заходить в приложение и нажимать Activate
  • В трее нажимать правой кнопкой на ярлык Wireguard, и левой на имя вашей конфигурации. При установке Wireguard прописывается в автозагрузку, и поэтому он всегда будет в трее. wg-windows-6

MacOS

  1. Скачать приложение Wireguard из App Store

  2. Теперь нужно открыть приложение и добавить конфиг. В приложении нажмите на кнопку “Import tunnel(s) from file (Добавить туннель)” по центру или иконку с плюсом слева снизу wg-macos-1

  3. Перейдите в директорию, где у вас лежит файл с конфигурацией. Выбираете конфиг и разрешаете MacOS “Добавление конфигурации VPN”.

  4. Проверьте, что в вашем конфиге есть настройка DNS Servers. Без этого в MacOS не будет нормально работать туннель. Если поле “DNS-серверы” заполнено, ничего менять не нужно. Если нет, нажмите “Edit (Править)” и добавьте строку в [Interface] после Address

DNS = 1.1.1.1, 8.8.8.8

wg-macos-2

  1. Для запуска нажмите на Activate. Теперь весь трафик с телефона ходит через VPN, и отобразится значок Wireguard в трее.

  2. Проверьте, что интернет работает и трафик идёт через VPN. Для этого можно воспользоваться одним из сайтов, показывающих ваш внешний IP адрес, например https://ifconfig.co/

Обратите внимание на страну, должна отобразиться та, в которой находится сервер с Wireguard - у меня это Нидерланды. wg-macos-3

Запускать туннель можно двумя способами:

  • Заходить в приложение и нажимать Activate
  • В трее нажимать правой кнопкой на ярлык Wireguard, и левой на имя вашей конфигурации. wg-macos-4

Linux

Для запуска Wireguard в Linux есть два три стула:

Wireguard поддерживается в Netwrok-Manager из коробки. Только проблема в том, что настраивать и управлять им можно только через nmcli. Для того, что бы иметь toggle в GUI Network-Manager, необходимо ставить плагин, как и для OpenVPN. Пакета с плагином нет в PPA, его нужно собирать из исходников .

В Linux wg-quick использует openresolv для управления DNS и не поддерживает systemd-resolved, который используется почти везде. И при поднятии интерфейса выводится ошибка

line 32: resolvconf: command not found

Поэтому в Linux строку DNS нужно будет выпилить. В этом случае будет использоваться DNS системы, т.е. например, DNS сервер на вашем домашнем роутере.

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

Для этого нужно оставить строку DNS и сделать симлинк

sudo ln -s /usr/bin/resolvectl /usr/local/bin/resolvconf

Пока разберём только консольный вариант для Ubuntu 20.04. Для всех остальных линуксов настройка особо не отличается. Команды для установки можно найти на официальной странице .

  1. Ставим Wireguard
sudo apt install wireguard
  1. Копируем конфиг в директорию /etc/wireguard/. Нужно sudo
sudo cp test.conf /etc/wireguard/
  1. Используем wg-quick для поднятия и закрытия туннеля. Так же везде необходимо sudo, т. к. это создание интерфейса.

Имя конфигурации для wg-quick точно такое же, как имя файла конфига. Поднимаем

sudo wg-quick up test

Проверяем состояние туннеля

sudo wg show

wg-linux-1

Проверяем IP адрес и страну

curl ifconfig.co
curl ifconfig.co/country

Закрываем туннель

sudo wg-quick down test

Обучающие материалы про VPN и роутинг, не дотягивающий до полноценной статьи, публикую в моём телеграм-канале .