Быстрый личный VPN через Wireguard

Мы живём в эпоху тотальных ограничений и запретов, когда каждый день нам норовят что-то еще отключить.

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

Сегодня мы арендуем и настроим сервер Linode в Германии.

Я уже писал заметку по этому поводу, но с тех пор многое изменилось, и время показало, что использовать чужие VPN может быть попросту небезопасным.

Но более важно, что появилось отличное решение для простых смертных, которые не хотят ломать голову - Wireguard.

WireGuard® — это чрезвычайно простая, но быстрая и современная VPN, использующая современную криптографию. Он стремится быть быстрее, проще, компактнее и полезнее, чем IPsec, избегая при этом головной боли. Он намерен быть значительно более производительным, чем OpenVPN. WireGuard разработан как VPN общего назначения для работы как на встроенных интерфейсах, так и на суперкомпьютерах, подходящих для самых разных обстоятельств. Первоначально выпущенный для ядра Linux, теперь он является кроссплатформенным (Windows, macOS, BSD, iOS, Android) и доступен для широкого развертывания. В настоящее время он находится в стадии интенсивной разработки, но уже может считаться самым безопасным, простым в использовании и простейшим VPN-решением в отрасли.

Wireguard поставляется прямо в ядре Linux с версии 5.6 , что говорит о его несомненной крутизне и надёжности.

Создание сервера

Первым делом выбираем и арендуем сервер в нужной стране. Лично я по-прежнему использую Linode, но вы можете использовать сервер любого другого хостера.

Внимание, в связи с уходом Visa и Mastercard, оплатить что-то за рубежом стало проблемой.

Вот небольшой список хостеров, у которых есть сервера в других странах и они принимают оплату из РФ:

  • ihor.ru (неудобная админка, но проверял лично - работает)
  • vdsina.ru (не проверял)
  • pq.hosting (не проверял)

Если вы решите работать с Linode, то можно воспользоваться моей реферальной ссылкой для получения $100 на 60 дней - фактически халявный сервер на 2 месяца, нужно только привязать карту. Российская Visa от Сбербанк отлично работает, только что проверил.

Дальше создаём сервер, выбирая Ubuntu 20.04 LTS и нужную страну. Тариф самый минимальный, за $5.

Указываем пароль для root и, желательно, свой SSH ключ, если он у вас есть.

Всё, сервер уже создаётся

Смотрим IP нового сервера и подключаемся к нему через SSH:

ssh root@172.104.154.190

Если вы используете SSH ключ, то и пароль вводить не придётся, только принять ключ сервера.

Установка приложений

Первым делом обновляем зависимости

apt update && apt dist-upgrade -y

Затем ставим всё нужное

apt install wireguard-tools mawk grep iproute2 qrencode mc htop

Работа с Wireguard сама по себе не очень сложная, но мы пойдём совсем простым путём, и скачаем утилиту easy-wg-quick.

cd /etc/wireguard
wget https://raw.githubusercontent.com/burghardt/easy-wg-quick/master/easy-wg-quick
chmod +x ./easy-wg-quick

Она автоматически всё настроит, вообще думать не придётся.

Запуск VPN

Чудесная утилита делает всё сама, нужно только запустить ./easy-wg-quick. При первом запуске скрипт создаст все необходимые конфигурации и первого клиента.

Выглядит это вот так

Как видно, вы получаете сразу QR код для подключения к серверу. Остаётся только скачать Wireguard на ваш телефон или планшет и добавить соединение через этот код.

Теперь создаём и запускаем службу systemd:

systemctl enable wg-quick@wghub
systemctl start wg-quick@wghub

Ну а дальше просто включаем VPN на вашем устройстве, когда нужно, и пользуемся!

Посмотреть текущие подключения можно через wg show:

Новые подключения

Для каждого нового подключения нужна своя конфигурация. И для её создания вам придётся каждый раз заходить на сервер в директорию /etc/wireguard, чтобы запустить easy-wg-quick.

Этим вы создадите нового пользователя с конфигом в wgclient_номер.conf, который затем нужно использовать на клиентском устройстве.

На мобильных удобнее подключаться через QR код, а на компьютерах просто копируем содержимое файла с сервера через cat wgclient_10.conf и вставляем у себя на компе. А потом указываем программе

И, конечно, после создания нового клиента нужно перезапустить сервис:

systemctl restart wg-quick@wghub

wg show

У меня например, заготовлено уже 3 клиента:

Любого из них всегда можно отключить, просто удалив конфиг и перезапустив сервис.

Приложение Wireguard есть для всех платформ, так что проблемы с подключеним быть не должно.

Заключение

Вот мы и создали наш первый VPN! Как вы видели из картинки в начале заметки, никаких проблем со скоростью работы нет - мои 100 мегабит спокойно пролетают через сервер в другой стране.

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

Теперь вы знаете как можно быстро, легко и очень дёшево поднять свой VPN на любом сервере. И в этом VPN вы можете быть полностью уверены, до тех пор, пока хостер оказывает вам услуги. А если вдруг и перестанет - то просто надёте нового и повторите настройку.

Всем свободного интернета!

Комментарии (5)
r2m0x94R2m0x94 (Vasily)
09.03.2022 16:58

Привет, Василий вопрос может показаться банальным, но никак не пойму, как его использовать например из консоли modx в то время, когда Guzzle и Curl, что-то барахлят?

bezumkinВасилий Наумкин
10.03.2022 02:26

Вопрос не такой уж и банальный, на самом деле.

VPN - это туннель на другой сервер, и на компьютере он выглядит как новый сетевой интерфейс. При его включении все запросы заворчиваются на эту сетевую карту, и весь софт его использует, даже не зная, что он работает через VPN.

Соответственно, чтобы его поднять, тебе нужны права root и на чужом хостинге этого сделать не получится.

Если же ты хочешь использовать свой сервер для разрешения проблемных запросов, то тебе нужен не VPN, а Proxy, к которому можно будет подключиться из Guzzle. В своё время я использовал Squid 3, возможно сейчас есть решения лучше и проще.

born2slippishnaa istntome
18.03.2022 22:43

Зарегистрировался чтобы выразить благодарность за доступное и подробное описание процесса. Была возможность взять linode, но остановился на vdsina, получилось и больше по трафику и дешевле по цене. Не понравился родной клиент под вин, использую tunsafe. Спасибо, и удачи в вашей работе )

bezumkinВасилий Наумкин
19.03.2022 01:27

На здоровье!

begoodco1
07.04.2022 05:49

Зарегистрировался чтобы выразить благодарность за доступное и подробное описание процесса. Была возможность взять linode, но остановился на vdsina, получилось и больше по трафику и дешевле по цене. Не понравился родной клиент под вин, использую tunsafe. Спасибо, и удачи в вашей работе )

ЕвгенийК
09.04.2022 03:35
Это хорошо, что такая возможность есть и может быть использована. А то тенденция, мания, что-то в по...
begoodco1
07.04.2022 05:49
Зарегистрировался чтобы выразить благодарность за доступное и подробное описание процесса. Была возм...
bezumkin
Василий Наумкин
18.03.2022 12:35
Авторизация есть из коробки, для входа в базовую админку. Можно установить через composer и собрать ...
bezumkin
Василий Наумкин
10.03.2022 12:08
Ну, я имел в виду, что по закону можно =) А в реальности с валютой очевидные проблемы.
Сергей Лелеко
04.03.2022 06:12
О как! не знал! спасибо
bezumkin
Василий Наумкин
01.03.2022 15:32
Я делал одного бота на botman/botman, но из-за своей универсальности конкретно с Телеграм на нём раб...
bezumkin
Василий Наумкин
25.02.2022 09:22
P.S. Кажется цитаты у тебя никак не стилизуются в комментариях... Спасибо, поправил!
Electrica
Михаил
08.02.2022 11:19
Работает!
Алексей
09.01.2019 10:55
Насыщенный год ) От души поздравляю с ДР! Счастья, успехов и семейного благополучия! Жаль лимит заме...
septa rose
28.05.2018 22:16
hmmm, keren abis