Многие государственные сайты и порталы недоступны из-за границы, также во многих компаниях действует политика информационной безопасности, которая обязывает сотрудников работать с российских IP-адресов. В этой статье мы дадим подробный гайд по установке и настройке 2 разных Open Source VPN-серверов на VPS с получением публичных белых российских IP-адресов.
Что потребуется: немного времени, Linux-терминал или Windows CMD (Windows7+) и самый простой VPS, размещенный в российском ЦОД. Мы будем использовать VPS от 1cloud, размещенный в Москве.
Приобретение VPS
Для VPN-сервера подойдет VPS самой простой конфигурации: 1 vCPU, 1 Gb RAM, 10 Gb SSD, Ubuntu 18, Москва. Для приобретения VPS от 1cloud необходимо зарегистрироваться в Панели и перейти в раздел «Виртуальная инфраструктура» → «VPS/VDS на базе Open Source»:
После того как VPS создастся, он появится в списке доступных серверов:
Кликнув, по серверу — раскроются его свойства. Сейчас нас интересуют только IP-адрес, логин и пароль для входа по SSH:
Теперь зайдем на VPS по SSH и начнём установку VPN. Мы будем это делать из Windows CMD:
- Кликнете на иконку поиска на нижнем тулбаре Windows;
- В строке поиск введите CMD;
- Из результатов поиска выберите CMD (Командная строка).
- В CMD введите следующую команду: ssh root@[IP-адрес сервера];
- На запрос подтверждения продолжения работы — введите yes;
- Пароль для входа можно скопировать из Панели 1cloud и вставить в CMD правым кликом мышки;
После успешного подключения — вы увидите Linux-терминал:
В нашей базе знаний есть подробная инструкция по подключению к VPS 1cloud для пользователей Windows и Mac. С ней можно ознакомиться здесь. Отлично, мы подключились, теперь можно устанавливать VPN. Начнём с Outline.
Outline VPN
Outline VPN — это Open Source решение от компании Jigsaw. Познакомиться поближе с Outline можно по этой ссылке. Outline состоит из трех частей:
- Outline VPN Manager — ПО для управления серверной частью Outline VPN (устанавливается на рабочую машину);
- Outline VPN Server — серверное ПО, которое разворачивается на сервере;
- Outline VPN Client — клиентская программа, которая устанавливается на устройство, подключаемое к VPN.
Outline VPN Client можно установить на любую ОС, в том числе на Android и iOS. Outline VPN Server устанавливается на Windows и Linux ОС. Мы будем его устанавливать на Ubuntu 18.
Установка и настройка Outline VPN
Для работы Outline Server VPN нужен Docker и cURL. Установим их:
- Обновим пакеты и установим вспомогательный софт: apt-get update && apt-get install -y ca-certificates curl gnupg lsb-release;
- Добавим GPG-ключи для Docker: sudo mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg;
- Изменим права доступа к ключам: chmod a+r /etc/apt/keyrings/docker.gpg;
- Настроим репозиторий:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - Обновим ещё раз пакеты и установим Docker: apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin;
- Убедимся, что Docker установился: sudo docker run hello-world.
Теперь у нас всё готово для установки Outline VPN. Давайте установим Outline VPN Manager и Outline VPN Server:
- Перейдите на официальный сайт Outline, скачайте Outline VPN Manager и установите его себе на рабочую машину;
- Запустите его, нажмите на кнопку «+» и выберите пункт «настроить Outline где угодно»:
- Выполните первую команду инструкции:
После выполнения этой команды на сервере вы увидите следующий вывод в Linux-терминале:
Здесь нас интересуют два момента: Json с параметрами доступа для Outline VPN Manager и предупреждение о том, что перечисленные в выводе порты могут быть закрыты. Сразу откроем их:- ufw allow 34922, 30685, 21, 22 proto tcp;
- ufw allow 30685/udp;
- ufw enable;
- ufw status.
- Теперь скопируйте Json из терминала и вставьте его во вторую секцию:
После, нажатия на кнопку готово, вы увидите такой экран:
Теперь можно скачивать Outline VPN Client на любое нужное вам устройство и копировать на него ключ доступа.
Плюсы и минусы Outline VPN
Безусловным плюсом Outline VPN является минимальное количество телодвижений по настройке его серверной части, установка Outline VPN осуществляется вообще буквально в несколько кликов, а вот использование большого количества стороннего софта — это уже минус. К тому же трехкомпонентная схема работы Outline VPN тоже не вызывает восторга.
Конечно, такая схема имеет огромный плюс в том, что вы можете создавать сколь угодно большое количество VPN-серверов и подключать к ним разных клиентов, но скорее всего вы будете использовать один VPN-сервер и несколько клиентов по одному ключу.
Хорошо, с Outline VPN всё понятно — ставится относительно быстро, (если есть хорошая инструкция, а она теперь есть), работает стабильно, есть клиенты под все популярные ОС. Давайте, теперь рассмотрим другой не менее популярный VPN-сервер — Wireguard.
Wireguard VPN
Wireguard VPN — это простой VPN, работающий по классической клиент-серверной модели. Он не требователен к ресурсам, серверная часть VPN устанавливается из стандартных Linux-репозиториев, а все настройки производятся через конфигурационные файлы.
Установка Wireguard VPN
Перед установкой Wireguard необходимо проделать некоторые действия, дело в том, что в процессе установки, вы скорее всего столкнетесь с багом, который не даст вам установить Wireguard, поэтому просто выполните следующий набор команд:
- lsof /var/lib/dpkg/lock && lsof /var/lib/apt/lists/lock && lsof /var/cache/apt/archives/lock;
- Команда вернёт строку с PID процесса, его нужно вставить в следующую команду
- kill -9 [process_id];
- rm /var/lib/apt/lists/lock && rm /var/cache/apt/archives/lock && rm /var/lib/dpkg/lock;
- dpkg --configure -a.
Всё, теперь можно устанавливать Wireguard: apt-get update && apt-get install -y wireguard. Переходим в директорию wireguard — cd /etc/wireguard/ и выполняем команду: wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey. В результате выполнения этой команды в текущей директории появятся два файла: privatekey и publickey. Это ключи для подключения, которые мы будем использовать в конфигурационных файлах.
Создадим конфигурационный файл Wireguard в формате conf: sudo vim wg0.conf и добавим в него следующее:
[Interface]
PrivateKey = [privatekey] # Приватный ключ из файла privatekey.
Address = 10.0.0.1/24 #Адрес VPN-сервера в частной сети.
ListenPort = 51830 #Порт, который будет слушать VPN-сервер.
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #Команды, который будут выполнять при поднятии сервера.
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE #Команды, который будут выполнять при выключении сервера.
Тут нужно только скопировать приватный ключ из файла privatekey и вставить его вместо [privatekey]. Остальное менять не надо. Теперь нужно настроить проброс портов. Делается это связкой команд: echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p . В результате выполнения команды в терминал будет выведена следующая информация:
Настало время позаботится об автоматизации — настроим автоматический запуск WG сервера после перезагрузки сервера: systemctl enable wg-quick@wg0.service. Команда вернёт такой вывод:
Запустим Wireguard сервер и выведем его статус: systemctl start wg-quick@wg0.service && systemctl status wg-quick@wg0.service. Статус Wireguard должен быть active:
Отлично, Wireguard сервер заработал, но это ещё далеко не всё. Теперь нам нужно создать ещё пару ключей для подключения клиента и добавить конфигурационную секцию к созданному нами wg0.conf. Давайте, сначала сгенерим ключи уже известным нам способом: wg genkey | tee /etc/wireguard/katkov_priv | wg pubkey | tee /etc/wireguard/katkov_pub.
Хорошо, ключи для подключения готовы, теперь добавим в конец wg0.conf вот эту секцию:
[Peer]
PublicKey = [katkov_publickey] #Публичный ключ клиента.
AllowedIPs = 10.0.0.2/32 #IP-адрес в частной сети, который будет присвоен клиенту.
После сохранения конфига, нужно перезапустить Wireguard командой systemctl restart wg-quick@wg0 и проверить его статус командой systemctl status wg-quick@wg0. Если статус active, можно двигаться дальше — устанавливать клиента и писать конфиг для него.
Мы будем использовать Wireguard Client для Windows 11. Скачиваем его с официального сайта и устанавливаем. После установки нужно создать конфигурационный файл для подключения, подойдет любой текстовый редактор. Вставьте это содержимое в текстовый файл и сохраните файл в удобном для вас месте (расширение файла — .conf):
[Interface]
PrivateKey = [CLIENT-PRIVATE-KEY] #Клиентский приватный ключ. В нашем случае katkov_privetkey.
Address = 10.0.0.2/32 #IP-адрес клиента, который настроен на WG сервере.
DNS = 8.8.8.8 #DNS, который будет использовать при подключении.
[Peer]
PublicKey = [SERVER-PUBKEY] #Публичный ключ сервера.
Endpoint = [SERVER-IP]:51830 #IP адрес удаленного сервера и порт прослушивания.
AllowedIPs = 0.0.0.0/0 #Если указаны все нули — весь трафик клиента будет проходить через WG сервер.
PersistentKeepalive = 20 #Интервал проверки соединения между клиентом и сервером (сек).
Теперь можно добавлять конфигурационный файл в Wireguard Client: запустите клиента, нажмите на кнопку «Импорт туннелей из файла», выберите созданный конфиг и нажмите кнопку «Открыть».
После добавления файла — нажмите на кнопку «Подключиться», статус соединения должен измениться на «Подключен»:
На этом всё! Сервер и клиент Wireguard настроены. У Wireguard есть и мобильный клиент, но он не очень удобен в плане настройки — конфигурационный файл придётся создавать на локальной машине и пересылать по почте самому себе, чтобы сохранить на мобильном устройстве и открыть его с помощью Wireguard.
Давайте подведем итог разбора установки и настройки Wireguard и сделаем вывод, какой VPN для каких целей удобнее.
Плюсы и минусы Wireguard VPN
Wireguard VPN — это простой VPN, если вы дружите с Linux-терминалом и вас не пугает написание конфигурационных файлов. Мы выделили 3 основных достоинства и недостатка Wireguard, по нашему мнению:
Плюсы Wireguard:
- Установка из стандартного apt-get Linux-репозитория;
- Не нужно ставить дополнительный софт;
- Наличие клиентов под все популярные ОС.
Минусы Wireguard:
- Возможные ошибки при установке VPN;
- Наличие только консольного управления VPN-сервером;
- Не простая система взаимодействия конфигурационных файлов
Wireguard отлично подходит для личного использования и небольших команд, кому требуется быстрый и несложный в использовании VPN. Подведем итог — сравним Outline и Wireguard.
Какой VPN выбрать?
Мы рассмотрели процесс установки и использования Outline и Wireguard. Оба VPN отлично справляются со своей задачей предоставления защищенного и быстрого канала доступа к Российским онлайн-сервисам из-за границы.
Приведем сводную таблицу, содержащую специфику установки и работы каждого из VPN:
Параметр VPN-сервера | Outline | Wireguard |
---|---|---|
Сложность установки | Сложен в установке | Не сложен в установке |
Сложность настройки | Не сложен в настройке | Сложен в настройке |
Необходимость дополнительного ПО на сервере | Нужно устанавливать дополнительный софт | Не нужно устанавливать дополнительный софт |
Наличие клиентов для различных ОС | Есть клиенты под все популярные ОС | Есть клиенты под все популярные ОС |
Удобство эксплуатации | Высокое удобство эксплуатации | Среднее удобство эксплуатации |
Подходит для распределенных команд | Хорошо подходит для команд | Не подходит для команд |
Можно сказать, что если вы ищете надежный и простой VPN для собственных нужд или командной работы — самым простым решением будет Outline. Wireguard не уступает Outline, но он более сложен в настройке и подключение новых клиентов каждый раз требует манипуляций с конфигурационными файлами на сервере, а это не всегда удобно.
Оба VPN можно автоматизировать. У Outline есть API, а работу Wireguard можно автоматизировать с помощью Python и Telegram. В любом случае какой бы вы не выбрали VPN — вам понадобится надежный и бюджетный VPS, размещенный в российском ЦОД, желательно в Москве и Санкт-Петербурге, чтобы не было проблем с белыми IP-адресами.
VPS от 1cloud обладают всеми нужными параметрами, а благодаря модели расчетов Pay-As-You-Go — вы платите только за реально использованные ресурсы. Это значит, что вы можете включать сервер только на время работы, а в остальное время держать его выключенным.
Переходите по кнопке ниже, знакомьтесь с VPS от 1cloud, выбирайте нужную вам конфигурацию и работайте из любой точки мира так, как будто вы дома.