January 15, 2025

Делаем свой VPN для обхода DPI фильтров с помощью клиента Outline.

Всем привет!

С вами канал Bull Short. В нынешнее время, VPN постепенно становится частью нашей жизни. Надо отдать должное авторитарным странам.

Дисклеймер. Данный материал носит исключительно информационный характер. Автор не несёт ответственности за возможные нарушения законодательства. Убедитесь, что создание и использование VPN в вашей стране (или стране близких людей, которым вы помогаете) не нарушает местные законы.

Подготовка окружения

Для настройки своего VPN, вам понадобится:

  1. Outline клиент и менеджер.
  2. VPS/Dedicated server. VPS будет дешевле. Конфигурации будут ниже.
  3. FileZilla.
  4. Минимальный опыт работы с нодами будет плюсом, но в целом, готовьтесь к копипасту.

Скачайте себе на девайсы клиент и менеджер Outline -> https://getoutline.org, менеджер -> https://getoutline.org/en-GB/get-started/#step-1 и установите. После установки клиента вам нужно будет купить виртуалку, для этого переходим на pq.hosting и регистрируемся. В личном кабинете мы переходим Товары/Услуги -> Виртуальные сервера и нажимаем "Заказать". Данный хостер принимает оплату не только дефолтными способами, но и криптой, так и картами РФ.

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

Если вы делаете VPN для себя и не планируете делать большого кол-ва подключений к нему и будет небольшая нагрузка, то сервера 1vCPU/1GB RAM Aluminium будет с головой, если будет много пользователей, то рекомендую брать от 2/2 Argentum. Чем выше конфигурация — тем выше пропускная способность у виртуалки.

Операционную систему выбираем Ubuntu 22.04.

Промокод TG даст вам скидку на сервера.

Можете еще поставить удобный терминал для работы с сервером:

Для Windows -> https://mobaxterm.mobatek.net

Для MacOS -> https://termius.com/download/macos

Termius есть также для Windows и в нем есть функционал FileZilla, так что можете юзать чисто его.


Как зайти на свой сервер?

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

Username обычно root, пароль от сервера вам дали. И нажимаем Connect.


Установка VPN.

После подключения к серверу, нужно обновить систему:

sudo apt update && sudo apt upgrade -y

Легкий способ

Самый простой способ — запустить официальный скрипт, который автоматически установит сервер Outline в Docker.

Стартуем это:

curl -sS https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh | sudo bash

Если видите это:

> Verifying that Docker is installed .......... NOT INSTALLED
> Would you like to install Docker? This will run 'curl https://get.docker.com/ | sh'. [Y/n] > Installing Docker ...........................  

Пишете Y и Enter.


Успешная установка выгляит так:

> Verifying that Docker is installed .......... OK
> Verifying that Docker daemon is running ..... OK
> Setting PUBLIC_HOSTNAME to external IP ...... OK
> Creating persistent state dir ............... OK
> Generating secret key ....................... OK
> Generating TLS certificate .................. OK
> Generating SHA-256 certificate fingerprint .. OK
> Writing config .............................. OK
> Starting Shadowbox .......................... OK
> Starting Watchtower ......................... OK
> Waiting for Outline server to be healthy .... OK
> Creating first user ......................... OK
> Adding API URL to config .................... OK
> Checking host firewall ...................... OK

CONGRATULATIONS! Your Outline server is up and running.
To manage your Outline server, please copy the following line (including curly
brackets) into Step 2 of the Outline Manager interface:

Далее открываем Outline Manager, там выбираем это

И вставляем в второе поле длинную строку, которую нам выдал скрипт установки.

После этого у вас появится меню управления вашим VPN:

Далее открываем клиент на устройстве и вставляем ключ, который выдаст нам эта кнопка:

Все, VPN настроен и этого будет достаточно, чтобы обходить большинство DPI фильтров.


Возможные проблемы

Основная проблема, которая может возникнуть — закрытые порты на сервере. Понять это просто — Outline manager не откроет вам интерфейс управления и выдаст ошибку. Для того, чтобы открыть порты сделайте это, по порядку:

Когда вы установили Outline Server через скрипт, он автоматически выбрал случайный порт для вашего VPN сервера.

В Outline Manager вы можете посмотреть «Access Key» и увидеть конкретный порт. Он обычно выглядит как <server_ip>:<random_port> (например, 12.34.56.78:12345). В примере портом является то, что идет после : 12345

Открываем через UFW

sudo ufw allow ВАШ_ПОРТ/tcp
sudo ufw allow ВАШ_ПОРТ/udp

Проверяем:

sudo ufw status

Вывод примерно такой:

ВАШ_ПОРТ/tcp  ALLOW   Anywhere
ВАШ_ПОРТ/udp  ALLOW   Anywhere

Открываем через iptables

sudo iptables -A INPUT -p tcp --dport ВАШ_ПОРТ -j ACCEPT
sudo iptables -A INPUT -p udp --dport ВАШ_ПОРТ -j ACCEPT

Сохраняем:

sudo apt install iptables-persistent
sudo netfilter-persistent save

Проверка:

sudo iptables -L -n -v

Должны появиться правила, разрешающие ваш порт.


Удаляем VPN с сервера

Смотрим ID/имя контейнера:

docker ps -a

Удаляем контейнер с VPN:

docker rm -f НАЗВАНИЕ КОНТЕЙНЕРА

Проверяем не осталось ли запущенного контейнера:

docker ps -a

И чистим остальное:

rm -rf /opt/outline


Сложный способ

А вам правда интересно настраивать все ручками? Ну тогда если вам интересно — пишите в комментариях к посту, я добавлю сюда.

Если вам не хватает Outline и у вас в стране прям лютые DPI фильтры, то также пишите в комменты и я опубликую настройку Trojan + domain name. Фишка в том, что Trojan прикидывается настоящим HTTPS сайтом, а блочить HTTP очень дорого и никто этим не занимается. Но для этого способа вам нужен будет домен, +- $3-5 в год.

Есть еще WireGuard + obfs4 или cloak, могу и их расписать, но это уже для гиков, ИМХО.