Делаем свой VPN для обхода DPI фильтров с помощью клиента Outline.
С вами канал Bull Short. В нынешнее время, VPN постепенно становится частью нашей жизни. Надо отдать должное авторитарным странам.
Дисклеймер. Данный материал носит исключительно информационный характер. Автор не несёт ответственности за возможные нарушения законодательства. Убедитесь, что создание и использование VPN в вашей стране (или стране близких людей, которым вы помогаете) не нарушает местные законы.
Подготовка окружения
Для настройки своего VPN, вам понадобится:
- Outline клиент и менеджер.
- VPS/Dedicated server. VPS будет дешевле. Конфигурации будут ниже.
- FileZilla.
- Минимальный опыт работы с нодами будет плюсом, но в целом, готовьтесь к копипасту.
Скачайте себе на девайсы клиент и менеджер 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 ...........................
Успешная установка выгляит так:
> 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
sudo ufw allow ВАШ_ПОРТ/tcp sudo ufw allow ВАШ_ПОРТ/udp
sudo ufw status
ВАШ_ПОРТ/tcp ALLOW Anywhere ВАШ_ПОРТ/udp ALLOW Anywhere
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 с сервера
docker ps -a
docker rm -f НАЗВАНИЕ КОНТЕЙНЕРА
Проверяем не осталось ли запущенного контейнера:
docker ps -a
rm -rf /opt/outline
Сложный способ
А вам правда интересно настраивать все ручками? Ну тогда если вам интересно — пишите в комментариях к посту, я добавлю сюда.
Если вам не хватает Outline и у вас в стране прям лютые DPI фильтры, то также пишите в комменты и я опубликую настройку Trojan + domain name. Фишка в том, что Trojan прикидывается настоящим HTTPS сайтом, а блочить HTTP очень дорого и никто этим не занимается. Но для этого способа вам нужен будет домен, +- $3-5 в год.
Есть еще WireGuard + obfs4 или cloak, могу и их расписать, но это уже для гиков, ИМХО.