Найти в Дзене

Собственный VPN-сервер с Wireguard, Linux и быстрыми скоростями

Оглавление

Думаю, что не стоит в качестве предисловия к статье объяснять читателям и подписчикам канала зачем нужен VPN. Популярность VPN-сервисов возросла на территории нашей страны до невообразимых высот, а каждый второй популярный блогер в каждом третьем видео рекламирует очередной сервис, «гарантирующий анонимность и безопасность». Предлагаю вам действительно сделать использование VPN безопасным по-настоящему, подняв его на собственном сервере.

Помните, как РКН хотел заблокировать Телеграм, но ничего не получилось? Война Телеги и РКН закончилась поражением последнего и теперь мы можем спокойно пользоваться мессенджером. Например, можно подписаться на обновления канала Просто Код и получать уведомления о новых заметках раньше, чем их пришел Дзен.

Что понадобится для установки?

Само собой сервер с Linux на борту. Это может быть как собранный вами агрегат, шуршащий головками жесткого диска в шкафу или под столом, так и виртуальный сервер, приобретенный у провайдера. Если выбрали первый вариант, то милости прошу в комментарии к одной из заметок на канале, где подписчики поделились своими сборками и конкретной экономикой по созданию.

Зачем нужен собственный Linux-сервер, где и как его создать?

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

Создать собственный сервер на Timeweb

Подключаемся к серверу

Подключение происходит по протоколу SSH, данные для доступа хостинг-провайдер выдает после создания машины, обычно это логин, пароль и IP-адрес сервера. Подключение осуществляется через терминал следующей командой:

ssh <имя_пользователя>@<IP-адрес сервера>

Чтобы проще было подключаться рекомендую добавить свой публичный SSH-ключ на созданный сервер. Про создание SSH-ключей я говорил в заметке на канале.

Переносим SSH-ключи с одного компьютера на другой

Чтобы загрузить публичный ключ на сервер можно воспользоваться, как терминалом, так и панелью управления сервером. Если вы, как и я, выбрали Timeweb, то сделать это проще простого. Как видите, справа расположена подробная инструкция по тому, как ключ создать и как добавить в панель управления.

-2

Для добавления ключа вручную нужно в терминале ввести:

ssh-copy-id -i <путь_до_публичного_ключа> <имя_пользователя>@<IP-адрес сервера>

Обычно ключи SSH расположены в домашней директории пользователя в папке .ssh. Публичный ключ по-умолчанию называется id_rsa.pub, не перепутайте его с закрытым (приватным) ключом, которым ни с кем нельзя делиться и никуда не нужно загружать.

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

Почему Wireguard?

VPN-серверов очень много, каждый найдет что-то свое. Но я остановился на Wireguard, о котором впервые услышал от авторов двух каналов на Youtube - Johe News и Диджитиализируй. В видео они подробно рассказывают о преимуществах этого VPN-сервера. Если сказать кратко, то первым преимуществом является то, что скорость соединения при подключении не сильно падает, вторым - то, что сервер не «сжирает» много системных ресурсов. Ссылки на видео я оставил выше, можете перейти и посмотреть подробно суть каждого ролика.

Ручной установки НЕ БУДЕТ

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

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

Поднимаем сервер Wireguard

Скрипт разработал пользователь под именем Stanislas и разместил на своем Github. На странице проекта говорится, что существует поддержка таких дистрибутивов, как Ubuntu (от версии 16.04 и выше), Debian (от версии 10 и выше), Fedora, CentOS, AlmaLinux, Arch Linux, Oracle Linux. Чтобы скачать скрипт на сервер открываем терминал, подключаемся к серверу и вводим там команду:

git clone https://github.com/angristan/wireguard-install.git

В домашней директории появится папка wireguard-install, где лежит скрипт wireguard-install.sh. Его нужно сделать исполняемым:

chmod +x wireguard-install.sh

-3

После остается лишь запустить скачанный скрипт и он произведет все необходимые действия по установке в систему серверной части Wireguard.

./wireguard-install.sh

Как видите, установка представляет собой просто нажатие кнопки Enter и ввода имени клиентского конфигурационного файла. Единственный момент: на этапе, когда скрипт спрашивает о DNS резолверах (First DNS resolver и Second DNS resolver), то некоторые рекомендует в первом случае указать адрес 1.1.1.1, во втором - 8.8.8.8. Но я оставил все по-умолчанию. В конце установки присутствует QR-код, который можно использовать для настройки клиента.

-4

Чтобы добавить клиента нужно заново запустить скрипт. Также при повторном запуске доступны различные опции.

-5

Я создал два конфигурационных файла - для компьютера и для смартфона. Начнем с настройки смартфона, так как там все очень просто.

Устанавливаем клиент Wireguard на смартфон

Нужно установить клиент Wireguard из магазина приложений, который зависит от вашей платформы. У меня Android, потому установил приложение из Play Market. Если не закрыли QR-код, то запускаем Wireguard и сканируем изображение.

Если сканировать QR-код уже не получается, то скачиваем конфигурационный файл, переименовываем во что-нибудь покороче (так как у мобильного приложения, судя по всему, свои ограничения на название подключения), закидываем на телефон (я это сделал через Избранное в Телеграме) и загружаем в Wireguard-клиенте.

-6

Устанавливаем клиент Wireguard на компьютер или ноутбук

Для начала нужно установить клиентскую часть на свой дистрибутив. Установка слегка отличается в зависимости от дистрибутива, но я приведу команды для классической троицы - Ubuntu (и все, что DEB-базе), Fedora (и все, что на RPM-базе) и Archlinux.

  • Ubuntu (Debian/Linux Mint/etc)

sudo add-apt-repository ppa:wireguard/wireguard

sudo apt update

sudo apt install wireguard

  • Fedora

sudo dnf install wireguard-tools

  • Archlinux

sudo pacman -S wireguard-tools

Так как у меня Archlinux, то буду показывать настройку на примере этой системы.

-7

После установки нужно скопировать конфигурационный файл для компьютера в папку по пути /etc/wireguard. Во время копирования я переименую файл, чтобы было проще потом включать и выключать VPN-соединение. Конфиги я положил внутрь папки VPN-conf в домашней директории.

cd VPN-conf

sudo cp wg0-client-prosto-code.conf /etc/wireguard/vpn.conf

-8

Теперь осталось только включить VPN-соединение, для этого вводим команду

wg-quick up vpn

Название соединения соответствует имени конфигурационного файла. Чтобы отключиться от VPN-сервера вводим:

wg-quick down vpn

-9

Также существуют графические утилиты, которые позволяют работать с Wireguard в привычном режиме, помимо этого есть дополнения для системных менеджеров подключений. Дабы не заморачиваться с этими способами, я показал универсальный, который прокатит на любом дистрибутиве с любой средой рабочего окружения. Чтобы не вводить команды каждый раз, можно добавить алиас. У меня vpnup включает соединение, vpndown отключает. Про то, как настроить алиасы для работы в терминале и чем они удобны я рассказывал в одной из статей на канале.

Ускоряем работу в терминале при помощи алиасов

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

Чтобы не пропустить новые заметки стоит подписаться на обновления канала Просто Код в Телеграме. Так вы будете получать уведомления о выходе постов раньше, чем об этом сообщит Дзен.