Я давно хотел привести VPN в нормальный вид: чтобы работало не “как-нибудь”, а чтобы было несколько запасных вариантов под разные устройства и ситуации.
У меня есть телефон, домашний компьютер, рабочий компьютер, серверы, домашний Ubuntu-сервер и разные сценарии: где-то нужен обычный доступ к сайтам, где-то стабильная работа Telegram, где-то YouTube и Discord, где-то подключение к своим сервисам.
В итоге этот проект получился не про “поставил одну кнопку и забыл”, а про нормальный разбор: какие VPN-решения реально работают, какие ломаются, где нужно использовать AmneziaVPN, где WireGuard, где Outline, а где лучше иметь запасной вариант.
Это не инструкция от “гуру по сетям”. Я просто руками настраивал, проверял, ошибался, переделывал и собирал схему, которой могу пользоваться сам.
Какая была задача
Основная задача была простая: сделать личную VPN-инфраструктуру, которая будет работать на разных устройствах.
Мне нужно было:
- настроить VPN для телефона;
- настроить VPN для домашнего компьютера;
- настроить VPN для рабочего компьютера;
- проверить запасные варианты;
- подготовить ключи для других людей;
- понять, какие решения реально стабильные;
- не зависеть только от одного приложения или одного протокола;
- разобраться, что происходит на домашнем Ubuntu-сервере.
Отдельная задача была сделать так, чтобы людям можно было отправлять не конфиги файлами, а обычный текстовый ключ. Например:
vpn://...для AmneziaVPN;ss://...для Outline;vless://...для Hiddify / XRay Reality.
Файлы .conf работают, но для обычного человека это уже сложнее: скачать файл, найти его, импортировать, не потерять. А текстовый ключ проще: скопировал, вставил, подключился.
Что я пробовал
В процессе я проверял несколько решений:
AmneziaVPN
AmneziaVPN в итоге показала себя лучше всего.
Она нормально работает у меня:
- на телефоне;
- на компьютере;
- на рабочем компьютере.
Для Amnezia получилось подготовить отдельные ключи и конфиги. Сначала я работал с AmneziaWG-конфигами, но потом стало понятно, что для раздачи людям удобнее делать именно текстовые ключи vpn://.
Важный момент: для AmneziaWG и WireGuard один конфиг лучше считать как одно устройство. Иначе могут быть конфликты, потому что один ключ и один внутренний IP начинают использоваться с разных устройств одновременно.
Soto VPN
На телефоне я также пользуюсь Soto VPN. Он у меня работает хорошо, поэтому оставил его как ещё один рабочий вариант.
Я не стал строить всю систему только вокруг него, потому что мне важно было иметь своё решение на своём сервере. Но как запасной рабочий VPN на телефоне он пригодился.
Cloudflare One Client
На домашнем компьютере, который стоит на домашнем интернете, я использую Cloudflare One Client. Вместе с ним у меня также используется “запрет” для Discord и YouTube.
На рабочем компьютере ситуация другая: он сидит через роутер с SIM-картой. Там Cloudflare почему-то перестал работать нормально. Поэтому на рабочем компьютере я использую связку:
- запрет для Discord и YouTube;
- AmneziaVPN как основной VPN.
Именно поэтому мне было важно не просто поставить один VPN, а иметь несколько вариантов под разные сети.
Outline
Outline я тоже пробовал. Идея хорошая: есть короткий ключ ss://, его удобно отправлять людям, человек вставляет его в Outline Client и подключается.
Но в моём случае Outline почему-то не заработал нигде. Возможно, я где-то неправильно настроил сервер, порты или сам клиент. Пока я это не считаю закрытым решением.
При этом сам формат Outline мне нравится: для раздачи людям он очень удобный. Если позже получится нормально настроить Outline, он может стать хорошим запасным вариантом.
XRay Reality и Hiddify
Ещё я пробовал связку XRay Reality / VLESS. Там ключи выглядят как vless://....
Идея тоже хорошая: можно выдавать людям текстовые ключи, которые вставляются в Hiddify или похожие приложения.
Но на iPhone возникла проблема: Hiddify недоступен для России в App Store. Я также пробовал ставить FoXray, но по той ссылке, которую проверял, приложение у меня тоже оказалось недоступно в App Store.
На другие платформы я пока полноценно не проверял. Поэтому XRay / Hiddify я оставил как потенциально рабочий запасной вариант, но не как основной.
Что получилось в итоге
На практике сейчас у меня рабочая схема такая:
Телефон
На телефоне работают:
- AmneziaVPN;
- Soto VPN.
AmneziaVPN стала основным вариантом, Soto VPN — запасным.
Домашний компьютер
На домашнем компьютере работает связка:
- Cloudflare One Client;
- запрет для Discord и YouTube.
Эта схема сейчас подходит именно для домашнего интернета.
Рабочий компьютер
На рабочем компьютере, где интернет идёт через роутер с SIM-картой, Cloudflare работает нестабильно. Поэтому там рабочая связка другая:
- запрет для Discord и YouTube;
- AmneziaVPN.
Домашний Ubuntu-сервер
Отдельно я проверил домашний Ubuntu-сервер.
На нём активен WireGuard wg0, который подключён к VPS в Торонто. Но важный момент: обычный исходящий трафик сервера сейчас идёт не через VPN, а напрямую через домашний роутер и российский IP.
При этом WireGuard реально работает:
- интерфейс
wg0активен; - handshake свежий;
- трафик через WireGuard есть;
- DNS-запросы идут через WireGuard;
- если явно привязать запрос к
wg0, внешний IP становится канадским.
Но глобальный full-tunnel сейчас не работает полностью. То есть конфиг выглядит как full-tunnel, потому что там стоит AllowedIPs = 0.0.0.0/0, но policy routing не активен. Из-за этого получается смешанная схема: DNS через VPN, а обычный HTTPS-трафик напрямую.
Это важный вывод, потому что на первый взгляд можно думать: “WireGuard включён, значит весь сервер сидит через Канаду”. А по факту нет. Нужно проверять маршруты, DNS и внешний IP.
Что было реализовано
По итогу проекта было сделано несколько вещей.
1. Настроены рабочие VPN-доступы
Основным рабочим решением стала AmneziaVPN. Она нормально работает на телефоне и компьютерах.
2. Подготовлены ключи для разных сценариев
Я отдельно разбирал форматы:
- AmneziaVPN —
vpn://; - Outline —
ss://; - XRay Reality / Hiddify —
vless://; - WireGuard / AmneziaWG —
.conf.
В процессе стало понятно, что для обычных людей лучше подходят именно текстовые ключи. Их проще вставить в таблицу, проще отправить в Telegram и проще объяснить человеку.
3. Сделана таблица для ключей
Я начал собирать ключи в таблицу: источник, тип, человек, ключ, инструкция, сообщение для отправки.
Это удобно, потому что можно не держать всё в голове. Например:
- какой ключ кому выдан;
- какой VPN используется;
- что отправить человеку;
- где инструкция;
- какой ключ свободен.
4. Подготовлены инструкции для людей
Отдельно я сделал тексты для пользователей, чтобы человеку можно было просто отправить сообщение:
- где скачать приложение;
- какой ключ скопировать;
- куда его вставить;
- что делать, если не работает.
Это мелочь, но на практике очень важная. Если человек не технический, то “вставь ключ в клиент” для него может быть непонятно. А когда есть короткая инструкция, вопросов меньше.
5. Проверен домашний Ubuntu-сервер
Я отдельно посмотрел, как сервер выходит в интернет, какие VPN есть, что реально активно, какие сервисы слушают порты.
Выяснилось, что:
- WireGuard работает;
- Docker активен;
- VPN-контейнеров нет;
- Telegram Bot API работает локально;
- Media Loader слушает только
127.0.0.1; - обычный интернет идёт через домашний роутер;
- DNS уходит через WireGuard.
Это полезно не только для VPN, но и для понимания всей инфраструктуры.
Что было сложно
Самое сложное — не поставить VPN, а понять, что именно реально работает.
Очень легко обмануться. Например:
- приложение показывает “подключено”;
- интерфейс WireGuard активен;
- трафик где-то есть;
- DNS вроде работает;
- но обычный браузер всё равно выходит напрямую.
Поэтому я всё проверял не только по статусу приложения, а через:
- внешний IP;
- маршруты;
- DNS;
- доступность сайтов;
- работу на разных устройствах;
- работу на разных типах интернета.
Ещё одна сложность — разные платформы. На Android одно приложение может быть доступно, на iPhone оно может быть недоступно. В России часть приложений может не открываться в App Store. На Windows всё может работать иначе, чем на телефоне.
Из-за этого нельзя просто сказать: “Вот одно приложение, всем поставить”. Нужно иметь запасные варианты.
Что не сработало
Outline пока не заработал
Outline я хотел использовать как удобный вариант для раздачи ключей людям. Формат ss:// для этого реально хороший.
Но на практике у меня Outline не заработал нигде. Возможно, проблема в настройке, портах, сервере или клиенте. Я это ещё не добил.
Пока вывод такой: Outline выглядит перспективно, но в текущей конфигурации я не могу считать его рабочим решением.
Hiddify и FoXray на iPhone не подошли
Hiddify оказался недоступен для России на iOS. FoXray по проверенной ссылке тоже оказался недоступен у меня в App Store.
Из-за этого XRay Reality / VLESS пока нельзя назвать универсальным вариантом для моих пользователей. Возможно, на Android и Windows всё будет проще, но на iPhone возникли ограничения.
WireGuard на домашнем Ubuntu не стал полноценным full-tunnel
WireGuard работает, но не так, как может показаться по конфигу. Он активен, DNS идёт через него, но обычный исходящий трафик сервера идёт напрямую через домашний интернет.
Это не обязательно плохо. Возможно, для текущих задач такой split-routing даже удобен. Но если цель — весь трафик через Канаду, то нужно донастраивать policy routing.
Что получилось хорошо
Лучше всего сработала AmneziaVPN.
Мне понравилось, что её удалось использовать на разных устройствах и сделать нормальную схему не только для себя, но и для будущей раздачи доступов другим людям.
Также хорошо сработал подход с таблицей. Когда ключей становится много, без таблицы начинается хаос. А так можно вести всё нормально:
- кто получил ключ;
- какой VPN;
- какой тип ключа;
- куда отправлена инструкция;
- работает или нет.
Ещё полезным оказался аудит домашнего Ubuntu-сервера. Он показал, что нельзя верить только статусу “активно”. Нужно смотреть, куда реально идёт трафик.
Почему это полезно
Такая работа полезна не только для личного VPN.
На самом деле это часть нормальной инфраструктуры для проектов. У меня есть сайты, Telegram-боты, автоматизации, серверы, локальные сервисы. И для всего этого важно понимать:
- где что запущено;
- какие порты открыты;
- какие сервисы доступны снаружи;
- как идёт трафик;
- что работает через VPN;
- что остаётся локальным;
- где могут быть точки отказа.
Например, если у тебя есть Telegram-бот, сайт или внутренний сервис, не всегда нужно открывать его в интернет. Иногда правильнее держать его локально и подключаться через VPN.
Я как раз делаю такие вещи в своих проектах: сайты, Telegram-боты, мини-автоматизации, серверные настройки, интеграции и рабочие схемы под конкретную задачу. Больше примеров можно посмотреть в блоках услуг, кейсов и digital-проектов.
Какие выводы я сделал
Главный вывод: одного VPN-решения мало.
На одном интернете работает Cloudflare, на другом перестаёт. На одном устройстве работает Amnezia, на другом приложение недоступно. Один протокол удобный для себя, другой удобнее для раздачи людям.
Поэтому нормальная схема — это не “один VPN на всё”, а несколько уровней:
- Основной рабочий вариант.
- Запасной вариант.
- Отдельный вариант для телефона.
- Отдельный вариант для компьютера.
- Понимание, что происходит на сервере.
Второй вывод: текстовые ключи удобнее, чем конфиги.
Для технического человека .conf — это нормально. Но если доступ нужно отправлять обычным людям, лучше, когда ключ выглядит как одна строка:
vpn://...;ss://...;vless://....
Третий вывод: нужно проверять не “включилось или нет”, а реальный результат.
VPN может быть активен, но трафик может идти не туда. Поэтому проверка внешнего IP, DNS и маршрутов — обязательная часть работы.
Что планирую доработать дальше
Дальше я хочу отдельно разобраться с Outline. Он удобен по формату ключей, но сейчас у меня не работает. Нужно проверить сервер, порты, настройки и понять, где ошибка.
Также нужно до конца разобраться с XRay Reality / Hiddify:
- проверить Android;
- проверить Windows;
- проверить macOS;
- понять, какие приложения реально доступны в разных регионах;
- оставить только рабочие инструкции.
По домашнему Ubuntu-серверу нужно решить, какой режим мне нужен:
- full-tunnel через Канаду;
- или split-routing, где через VPN идёт только часть трафика.
Если нужен full-tunnel, придётся донастроить policy routing WireGuard и проверить, чтобы при этом не сломался доступ к локальной сети.
Что похожее можно заказать у меня
У меня можно заказать не “абстрактную настройку VPN”, а практическую настройку под задачу.
Например:
- поднять VPN на VPS;
- настроить доступы для телефонов и компьютеров;
- сделать таблицу с ключами;
- подготовить понятные инструкции для пользователей;
- проверить сервер Ubuntu;
- настроить Telegram-бота или локальный сервис;
- закрыть внутренние сервисы от внешнего интернета;
- связать сайт, бота, сервер и автоматизации в одну рабочую систему.
Это ближе всего к направлению бизнес-автоматизаций, серверных настроек и digital-проектов. Если нужно посмотреть, что я уже делал, можно открыть кейсы, digital-проекты или другие статьи в блоге.
Итог
Этот проект получился не идеальным “с первого раза”, но полезным.
Я понял, что AmneziaVPN сейчас для меня самый рабочий вариант. Soto VPN тоже помогает на телефоне. Cloudflare работает на домашнем компьютере, но не везде. WireGuard на домашнем Ubuntu-сервере активен, но требует донастройки, если нужен полный выход через Канаду. Outline пока не заработал. Hiddify и FoXray на iPhone упёрлись в доступность приложений.
Зато теперь у меня есть понятная карта: что работает, что не работает, что нужно донастроить и какие решения можно использовать для себя или клиентов.
Если тебе нужно настроить похожую систему — VPN, сервер, Telegram-бота, сайт, автоматизацию или связку из нескольких инструментов — можно оставить заявку через форму на сайте: оставить заявку.
Я не обещаю магию одной кнопкой. Но могу руками разобраться в задаче, проверить варианты, собрать рабочую схему и объяснить её нормальным языком.
