test adv
,

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция

Гораздо лучше потратить немного времени и настроить собственный VPN-сервер, чем платить сторонним сервисам

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

Что для этого потребуется: 3 этапа

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

  1. Нужен удалённый компьютер, на который будет устанавливаться специальное ПО. Проще всего арендовать его в одном из крупных и надёжных сервисов — далее в статье я расскажу о таких.
  2. Надо подключиться к серверу по SSH-протоколу с помощью программы Termius и установить на него WireGuard — софт для настройки VPN-соединения.
  3. После настройки WireGuard останется лишь инсталлировать приложение на клиентское устройство и присоединиться к настроенному серверу.

Этап №1. Аренда сервера (выбираем бесплатный)

Поднимать VPN будем на удалённом сервере. Существует огромное количество сервисов, предоставляющих VPS (Virtual Private Server) по адекватным ценам. Ниже представлены популярные поставщики услуг:

  • Amazon AWS: первые 12 месяцев бесплатно, затем 10 долларов в месяц, 15 ТБ трафика;
  • Oracle Cloud: бесплатный навсегда, 10 ТБ трафика;
  • Hetzner: 3 евро в месяц, 20 ТБ трафика, требуется подтверждение личности по документу;
  • Vultr: 3,5 доллара в месяц (только при выборе VPS в США), 500 ГБ трафика;
  • Pulseheberg: 4 евро в месяц;
  • DigitalOcean: 5 долларов в месяц, 1 ТБ трафика.

Я рассмотрел разные варианты и в итоге остановился на Amazon AWS, так как у него есть бесплатные VPS, и для написания этого материала мне достаточно того, что он предлагает. Также был опробован более выгодный Oracle Cloud, но возникли проблемы с доступом к интернету через развёрнутый там VPN, поэтому пришлось отказаться в пользу AWS. Если предполагаются постоянный просмотр фильмов, видео и загрузка большого количества файлов, программ или игр через VPN, обратите внимание на пропускную способность и лимит трафика. Платные VPS зачастую обеспечивают лучшую скорость и низкую задержку.

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Этап №1. Аренда сервера (выбираем бесплатный). 1

После регистрации на сайте и привязки карты (спишется 1 доллар или евро для проверки, вернётся через 3-5 дней), необходимо создать экземпляр виртуальной машины, в которой будем настраивать VPN.

Шаг 1. В окне, открывшемся сразу после регистрации, нажимаем «Открыть Консоль управления AWS».

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Этап №1. Аренда сервера (выбираем бесплатный). 2

Шаг 2. Входим как Root-user, вводим данные, указанные при регистрации.

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Этап №1. Аренда сервера (выбираем бесплатный). 3

Шаг 3. Определяем регион, в котором будет расположен сервер. Для этого в правом верхнем углу нажимаем на Ohio и из выпадающего списка выбираем любое необходимое расположение сервера. После этого нажимаем Launch a virtual machine.

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Этап №1. Аренда сервера (выбираем бесплатный). 4

Шаг 4. Выбираем операционную систему Ubuntu Server 20.04 LTS (x86).

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Этап №1. Аренда сервера (выбираем бесплатный). 5

Шаг 5-6. Не требуется настройка, просто нажимаем Next.

Шаг 7. Указываем объём хранилища для работы системы, 20 ГБ будет достаточно.

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Этап №1. Аренда сервера (выбираем бесплатный). 8

Шаг 8. Пропускаем, нажимая Next.

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Этап №1. Аренда сервера (выбираем бесплатный). 9

Шаг 9. Нужно добавить новое правило. Выбираем тип Custom UDP, в поле порта вписываем 51820, в поле Source — 0.0.0.0/0. Description можно оставить пустым, либо заполнить понятным комментарием. На скриншотах ниже изображено, как должно выглядеть правило. Если всё введено верно, идём дальше и нажимаем Review and Launch.

Шаг 10. Когда нажимаем Launch, появится окно с предложением создать пару ключей, выбираем пункт Create a new key pair, даём любое название и нажимаем Download Key Pair. Загруженный файл понадобится для подключения к серверу. После этого кликаем по Launch Instances и затем по View Instances.

Шаг 11. Далее попадаем в панель управления, где нужно найти столбец Public IPv4 address (не путайте с Public IPv4 DNS) и скопировать IP-адрес оттуда.

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Этап №1. Аренда сервера (выбираем бесплатный). 15

Этап №2. Настройка сервера и подключение

Для настройки VDS надо подключиться к нему по SSH-протоколу. Рекомендую использовать для этого программу Termius. Она удобная, простая в использовании и кроссплатформенная.

Скачав её с официального сайта и установив, запускаем и нажимаем кнопку New host. В поле Address вводим IP-адрес выданного сервера — скопировали его ранее на 11 шаге. В строке Username пишем ubuntu, рядом с полем пароля выбираем Keys, далее нажимаем кнопку "+KEY". Рядом со строкой Private key кликаем по надписи File и выбираем загруженный ранее файл с расширением .pem. Сохраняем всё кнопкой Save. Теперь можно подключиться к серверу, дважды кликнув на созданный хост.

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Этап №2. Настройка сервера и подключение. 5

Прежде чем выполнять какие-либо действия, я обновляю список доступных к установке пакетов и сами пакеты. Для этого выполняем команду, написав её и нажав Enter:

sudo apt update && sudo apt upgrade -y

Настроим пересылку трафика:

sudo sed -i 's/\#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf

Обновим конфигурацию:

sudo sysctl -p

Переходим к установке и настройке самого VPN-сервиса.

Этап №3. Конфигурация VPN

На сегодняшний день существует несколько разных протоколов VPN:

  • PPTP — старый протокол, быстрый, но небезопасный, поэтому подойдёт только для просмотра контента, недоступного в некоторых регионах;
  • L2TP/IPSec — безопасен, прост в настройке, но скорость не самая высокая и может блокироваться файрволом;
  • SSTP — проприетарный протокол от Microsoft, который не поддерживается в GNU/Linux нативно;
  • IKEv2 — весьма быстр, стабилен и безопасен, но поддерживается не на всех устройствах;
  • SoftEther — свежий протокол, не поддерживается нативно в системах, но обеспечивает качественное шифрование с высокой скоростью;
  • OpenVPN — быстрый и очень безопасный, но непростой в конфигурации и требует установки специальных приложений;
  • WireGuard — активно развивающийся протокол, внедрена поддержка в ядро Linux, высокопроизводительный и надёжный, прост в развёртывании, хотя и требует установки дополнительных клиентских программ.

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

Установим его:

sudo apt install wireguard -y

Сгенерируем пару ключей для сервера. server_privatekey — это название файла с приватным ключом сервера, server_publickey — файл с публичным ключом сервера:

wg genkey | tee server_privatekey | wg pubkey > server_publickey

Для каждого клиентского устройства также создадим пару ключей. Это можно сделать и позже, но тогда придётся возвращаться к файлу конфигурации и редактировать его. 1 устройство — 1 выполнение команды ниже и, соответственно, 1 пара ключей. Не забывайте для каждого девайса менять названия файлов в команде. Во всех командах я выделил жирным то, что можно заменить. Например, для второго клиента могут быть client2_privatekey и client2_publickey. Опять же, название можно дать любое, главное, чтобы оно не повторялось и позволяло различить тип ключа и девайс. Я сгенерирую только для одного смартфона:

wg genkey | tee client_privatekey | wg pubkey > client_publickey

Выполним следующую команду для того, чтобы вывести сразу все сгенерированные ключи для сервера и клиента. Если у вас несколько клиентских устройств, то добавьте в конец команды названия всех созданных для них файлов и только потом выполните её. Например, если у вас 3 клиента, напишите cat server_privatekey server_publickey client1_privatekey client1_publickey client2_privatekey client2_publickey client3_privatekey client3_publickey.

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Этап №3. Конфигурация VPN. 1

Сохраним полученное содержимое в отдельный текстовый файл allKeys.txt на основном компьютере. Каждые две строки — это пара ключей. Первый — приватный, второй — публичный. Соответственно, первая пара — это ключи сервера, другие пары ключей принадлежат клиентам:

cat server_privatekey server_publickey client_privatekey client_publickey

Создадим конфигурационный файл:

sudo nano /etc/wireguard/wg0.conf

Вставим в него следующее содержимое, заменив <PRIV_SERV> строкой из сохранённого текстового файла allKeys.txt со всеми ключами (самая первая строчка), а <PUB_CLIENT> — строкой оттуда же, но для клиентского устройства (второй ключ в паре).

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Этап №3. Конфигурация VPN. 2

Для каждого клиентского устройства надо добавить раздел Peer по подобному принципу, указав IP-адрес, отличающийся четвёртым числом от ранее введённых (например, для второго клиента я введу AllowedIPs = 10.0.0.3/32, для третьего — AllowedIPs = 10.0.0.4/32 и так далее), и добавив его публичный ключ:

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <PRIV_SERV>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <PUB_CLIENT>
AllowedIPs = 10.0.0.2/32

Сохраним файл комбинацией клавиш Ctrl+X, нажмем Y и подтвердим клавишей Enter. Запустим сервис:

sudo wg-quick up wg0

Сразу добавим его в автозапуск, чтобы VPN автоматически стартовал после перезагрузки сервера:

sudo systemctl enable wg-quick@wg0.service

Готово, можно подключаться с клиентского устройства.

Подключение к VPN

Подключение настроенного VPN требует установки специального приложения WireGuard на клиентское устройство. Оно доступно на все популярные десктопные и мобильные девайсы.

Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Подключение к VPN. 1

Android/iOS

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

sudo apt install qrencode -y

Создадим файл конфигурации. Каждому новому устройству — новый файл конфигурации с уникальным именем (к примеру, client2.conf):

sudo nano client.conf

Вставим в файл содержимое, заменив <PRIV_CLIENT> на приватный ключ клиента (client_privatekey), сгенерированный ранее и сохранённый в отдельный файл allKeys.txt на основной машине. Вместо <PUB_SERV> подставим публичный ключ сервера (server_publickey) из того же файла. В Endpoint заменим <IP> на IP-адрес сервера (использовали его для подключения через Termius, нашли на шаге 11). В строке DNS можно указать желаемые DNS-сервера. Я выбрал DNS от Google.

[Interface]
Address = 10.0.0.2/32
PrivateKey = <PRIV_CLIENT>
DNS = 8.8.8.8, 8.8.4.4
[Peer]
PublicKey = <PUB_SERV>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = <IP>:51820

Сохраним файл комбинацией клавиш Ctrl+X, нажмем Y и подтвердим клавишей Enter. Сгенерируем QR-код: 

qrencode -t ansiutf8 < client.conf

QR-код отсканируем в мобильном приложении, дадим имя туннелю и подключим VPN. Если всё прошло успешно, на любом сайте для проверки IP (например, ipleak.net) будет отображаться адрес удалённого сервера.

Windows/macOS

Что касается компьютеров на Windows и macOS, файл конфигурации с расширением .conf лучше создать в любом текстовом редакторе на самом клиенте. Его содержимое будет аналогично тому, что предлагается выше для мобильных устройств. Только пункт с созданием QR-кода можно пропустить. Созданный файл импортируем в приложении WireGuard кнопкой Add Tunnel и активируем.

GNU/Linux

На компьютере с операционной системой GNU/Linux установим WireGuard таким же образом, каким установили его на сервер:

sudo apt install wireguard -y

Не забываем настроить пересылку трафика:

sudo sed -i 's/\#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf

И сразу же обновим конфигурацию:

sudo sysctl -p

На машине с Ubuntu 20.04 LTS мне пришлось установить дополнительный пакет, так как без него возникала ошибка:

sudo apt install openresolv

Создадим всё тот же файл конфигурации:

sudo nano /etc/wireguard/wg0.conf

Только в этот раз вставим в него содержимое, которое я указал чуть выше для мобильных устройств. Сохраним файл комбинацией клавиш Ctrl+X, нажмем Y и подтвердим клавишей Enter. Активируем VPN:

sudo wg-quick up wg0

Отключить VPN так же просто:

sudo wg-quick down wg0
Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция — Подключение к VPN. 7

Для экономии времени я советую создать псевдонимы (aliases). Они позволят вместо таких комплексных команд вводить простые: wgon для подключения к VPN и wgoff для отключения. Откроем файл, который определяет конфигурацию терминала при запуске:

nano ~/.bashrc

Добавим в самый конец несколько строк:

# Aliases for WireGuard
alias wgon='sudo wg-quick up wg0'
alias wgoff='sudo wg-quick down wg0'

Сохраним файл комбинацией клавиш Ctrl+X, нажмем Y и подтвердим клавишей Enter.

Последнее изменение:
 
21soroka
21soroka, 16 марта 2021, 22:59   (...)
Спасибо за статью, без настолько разжеванной статьи чайнки вроде меня никогда бы не справились. Добавил уже три устройства :) Скорость на нормальном интернете почти такая же, как без ВПН
Ответить
ivanov165
ivanov165, 17 марта 2021, 11:15   (...)
А есть ли в этом смысл? Еще в 2018 году на гитхабе выложили программу goodbyedpi, работающую без подключения к серверам в другой стране.Это если речь про обход блокировок
Ответить
Krokodil707
Krokodil707, 17 марта 2021, 12:29   (...)
VPN же не только для обхода блокировок используется
Ответить
ivanov165
ivanov165, 17 марта 2021, 13:05   (...)
это да, но зачем он для личного использования? ↑↑
Ответить
ivanov165
ivanov165, 17 марта 2021, 13:08   (...)
я имею ввиду свой
Ответить
ivanov165
ivanov165, 17 марта 2021, 13:26   (...)
к тому же еще и платный
Ответить
Krokodil707
Krokodil707, 17 марта 2021, 17:29   (...)
Присоединяюсь к каменту ниже, в первом же абзаце статьи всё это рассказал
Ответить
ivanov165
ivanov165, 17 марта 2021, 17:41   (...)
да я уже понял… для работы в общем
Ответить
21soroka
21soroka, 17 марта 2021, 13:38   (...)
Прямо после первого абзаца-вступления кроются ответы :)
Ответить
Jimmy_Pop
Jimmy_Pop18, 17 марта 2021, 16:02   (...)
Сайт с 2008 года, а бобсы до сих пор закладки не прикрутили.
Ответить
Souris
Souris, 19 марта 2021, 17:28   (...)
Статья супер, хотел попробовать, однако эта затея провалилась, у меня нет выделенного сервера и 1$ тоже. :-(
Ответить
21soroka
21soroka, 19 марта 2021, 17:44   (...)
1 доллар должны вернуть спустя 3–5 дней
Ответить
Souris
Souris, 19 марта 2021, 17:46   (...)
Я заметил это.
Ответить
Absaz
Absaz, 4 апреля 2021, 19:43   (...)
Хотелось бы увидеть подобную инструкцию для развёртывания Wireguard на сервисе Oracle Cloud. А то что-то ничего у меня не работает там. То есть работает, но нет выхода в интернет у клиентов.
Ответить
alex28
alex28, 4 октября 2021, 09:15   (...)
Добрый день!
Пытаюсь поднять VPN, чайник) Все делаю по вашей инструкции, но застрял в пункте генерации ключей:
cat server_privatekey server_publickey client1_privatekey client1_publickey client2_privatekey client2_publickey client3_privatekey client3_publickey.

выдает ошибку
cat: server_privatekey server_publickey Mac_privatekey Mac_publickey: No such file or directory
cat: iPhone_privatekey iPhone_publickey: No such file or directory
cat: iPad_privatekey iPad_publickey: No such file or directory

что делаю не так?
Ответить
Krokodil707
Krokodil707, 4 октября 2021, 12:27   (...)
Введите команду ls -a и посмотрите, есть ли созданные файлы в директории
если есть, попобуйте вывести их содержимое по очереди командой cat имя_файла
Ответить
pre798m
pre798m, 26 октября 2021, 18:26   (...)
Здравствуйте. Уже вторую инструкцию создания VPN по протоколу Wisegard на AWS сделать (первая была более простая, там на сервере скрипт выполнялся), оба раза возникает одинаковая проблема.
При подключении к VPN (не важно мобилка/пк) интернет пропадает. Может подскажите в чем может быть проблема?
Ответить

Добавить комментарий
Если нужно ответить кому-то конкретно,
лучше нажать на «Ответить» под его комментарием