💡 Полезные Советы
Свой VPN в 2026 году: настройка VPS и Outline VPN за 15 минут
Сегодня мы разберем одно из самых удобных решений для селф-хостинга - установку Outline VPN. Он работает на базе зашифрованного протокола Shadowsocks, который изначально создавался для обхода Великого китайского файрвола. Главный плюс Outline - невероятно простое управление доступом для всех ваших устройств, семьи и друзей через удобный графический интерфейс.
Что такое Outline, кому он принадлежит и почему это надежно?
Outline - это не просто очередное VPN-приложение, а проект с открытым исходным кодом, который разрабатывается Jigsaw - технологическим инкубатором внутри корпорации Google (Alphabet). Изначально Outline создавался специально для журналистов, правозащитников и новостных организаций, чтобы обеспечить им безопасный доступ к информации в странах с жесткой интернет-цензурой.
Почему Outline считается надежным и безопасным:
- Протокол маскировки: В основе Outline лежит протокол Shadowsocks. Он не просто шифрует данные, но и маскирует их. Для систем блокировок (DPI) ваш трафик выглядит не как VPN-соединение, а как обычный, нечитаемый "белый шум". Это позволяет успешно обходить даже "Великий китайский файрвол".
- Независимый аудит: Поскольку код проекта полностью открыт (Open Source), его регулярно проверяют независимые компании в сфере кибербезопасности (например, Radically Open Security и Cure53). В нем нет скрытых "бэкдоров".
- Отсутствие логов (No-logs policy): Outline Manager и серверная часть технически не собирают и не хранят историю ваших веб-запросов. Вы контролируете свой сервер, и никто (даже Google) не имеет доступа к вашему трафику. Менеджер собирает лишь статистику объема переданных мегабайт, чтобы вы могли контролировать лимиты.
Скриншот приложения клиента:

Задача 1: Аренда сервера (VPS)
Для начала нам нужен виртуальный сервер за пределами РФ (не у хостера, который аффилирован с российскими компаниями или имеет российские стыки. Это не паранойя - это реальная техническая проблема, и она влияет и на приватность, и на обход блокировок, и на SEO‑репутацию IP).
Локация: Для пользователей из РФ идеальный баланс между пингом и стабильностью дают Германия, Нидерланды или Швеция. Выберите любого удобного зарубежного хостинг-провайдера (Hetzner, DigitalOcean, Vultr, Linode, OVHcloud или проверенных посредников).
Можем посоветовать реселлера koara.io :
Можете использовать нашу реферальную ссылку: https://koara.cloud/?from=1893
Промокод: sale_1893
- Тариф: Арендуйте самый дешевый тариф (обычно хватает 1 vCPU и 1-2 GB RAM).
- Операционная система: Строго чистая Ubuntu 22.04 (и выше) или Debian 12 (и выше).
- Виртуализация: Строго KVM.
После оплаты хостер выдаст вам IP-адрес сервера и пароль пользователя root.
Задача 2: Базовая безопасность сервера (Отказ от паролей)
Оставлять сервер с доступом по паролю в интернете - плохая идея. Его начнут атаковать боты-брутфорсеры в первые же минуты. Мы настроим доступ по криптографическому SSH-ключу.
Откройте PowerShell (если у вас Windows) или терминал (Linux/macOS) и выполните следующие шаги:
0. Первая кровь - смена пароля root
Подключитесь к серверу через терминал:
ssh root@ВАШ_IPВведите команду passwd для смены пароля.
Важно: Не используйте простые слова. Мы рекомендуем генерировать пароль длиной не менее 13 символов. Для создания надежного пароля воспользуйтесь генератором на нашем сайте https://riopass.ru/. Такой пароль методом брутфорса будут взламывать десятилетиями.
На домашнем ПК:
Генерация ключа:
Введите команду:
ssh-keygen -t ed25519 -f "$HOME\.ssh\vpn_key" -C "outline-server"Нажмите дважды Enter, когда система попросит ввести пароль (passphrase). В вашей папке
.sshпоявятся два файла:vpn_key(ваш секретный ключ) иvpn_key.pub(публичный ключ для сервера).Копирование публичного ключа на сервер:
Выведите содержимое публичного ключа на экран и скопируйте его:
cat "$HOME\.ssh\vpn_key.pub"Теперь подключитесь к вашему новому серверу по паролю, который дал хостер: ssh root@ВАШ_IP_АДРЕСCоздайте папку для ключей и запишите туда скопированный ключ:
mkdir -p ~/.ssh chmod 700 ~/.ssh nano ~/.ssh/authorized_keysВставьте ваш ключ (
ssh-ed25519...) в редактор, сохраните файл (Ctrl+O, Enter, Ctrl+X) и выдайте права:chmod 600 ~/.ssh/authorized_keysОтключение входа по паролю:
Теперь скажем серверу пускать только владельца ключа. Откройте конфигурацию SSH:
nano /etc/ssh/sshd_configНайдите и измените следующие строки:
PasswordAuthentication no PermitRootLogin prohibit-password KbdInteractiveAuthentication noПерезапустите службу SSH, чтобы применить настройки:
systemctl restart sshГотово! Ваш сервер теперь защищен.
Задача 3: Установка Outline VPN
Архитектура Outline состоит из двух программ: Manager (для управления сервером на вашем ПК) и Client (для подключения к VPN на телефоне или ПК).
- Подготовка Outline Manager:
Скачайте Outline Manager с официального сайта (getoutline.org) и установите на свой компьютер. Если сайт блокируется, то перейдите в официальный репозиторий на GitHub
Прямо на главной странице в описании (файл README.md) собраны прямые ссылки на загрузку Outline Manager (для Windows, macOS, Linux) и Outline Client для всех платформ.
- Откройте программу и выберите плитку "Настроить Outline где угодно" (Set up Outline anywhere).
- Программа выдаст вам длинную команду, которая начинается с
sudo bash -c ....Скопируйте её
- Установка на сервер:
- Вернитесь в терминал (PowerShell), где вы подключены к вашему серверу.
Вставьте скопированную команду и нажмите Enter.
Примечание: Если скрипт спросит, установить ли Docker, соглашайтесь (нажмите Y и Enter).
- Установка займет пару минут. В конце терминал выдаст зеленый текст — это ваши конфигурационные данные (API URL и сертификат), которые выглядят примерно так:
{"apiUrl":"https://...","certSha256":"..."}.Скопируйте весь этот блок.
Привязка сервера к Менеджеру:
- Вернитесь в Outline Manager.
- Вставьте скопированный из терминала зеленый блок во второе поле ввода и нажмите "Готово".
Сервер настроен! Теперь перед вами панель управления вашим VPN.
Этап 4: Подключение устройств и раздельное туннелирование
Создание ключей и подключение:
В Outline Manager нажмите "Добавить новый ключ". Вы можете переименовать его (например, "Мой iPhone" или "Ноутбук жены").

- Нажмите кнопку "Поделиться" рядом с ключом. Скопируйте полученный код доступа
(начинается на ss://...). Но не забудьте про ПРЕФИКСЫ - https://riopass.ru/tips/117/ без них могут блокировать соединение. - Скачайте приложение Outline Client на ваш телефон (из Google Play / App Store) или компьютер.
Чтобы безопасно подключиться к интернету, используйте этот сервер.
1. Скачайте и установите на устройство приложение Outline:
iOS: https://itunes.apple.com/app/outline-app/id1356177741
macOS: https://itunes.apple.com/app/outline-app/id1356178125
Windows: https://s3.amazonaws.com/outline-releases/client/windows/stable/Outline-Client.exe
Linux: https://support.getoutline.org/client/getting-started/install-linux/
Android: https://play.google.com/store/apps/details?id=org.outline.android.client
Дополнительная ссылка для Android: https://s3.amazonaws.com/outline-releases/client/android/stable/Outline-Client.apk2. Получите ключ доступа, который начинается с ss://, а затем скопируйте его.
3. Откройте клиент Outline. Если ваш ключ доступа определился автоматически, нажмите "Подключиться". Если этого не произошло, вставьте ключ в поле и нажмите "Подключиться".
Теперь у вас есть доступ к свободному интернету. Чтобы убедиться, что вы подключились к серверу, введите в Google Поиске фразу "Какой у меня IP-адрес". IP-адрес, указанный в Google, должен совпадать с IP-адресом в клиенте Outline.
Дополнительные сведения можно найти на странице https://getoutline.org/.
Откройте Client. Он автоматически распознает скопированный ключ из буфера обмена. Нажмите "Добавить сервер" и затем "Подключить". И не забудьте про ПРЕФИКСЫ - https://riopass.ru/tips/117/
Раздельное туннелирование (Split Tunneling):
В отличие от Amnezia, десктопный клиент Outline пропускает через VPN весь трафик устройства по умолчанию.
Поздравляем! Теперь у вас есть собственный, надежный VPN. Остались вопросы? Пишите на почту техподдержки riopass.ru, разберем любые ошибки!
FAQ: Частые вопросы и решение проблем
В: Провайдер всё-таки заблокировал мой Outline. Подключение идет, но интернета нет. Что делать?
О: Протокол Shadowsocks, на котором базируется Outline, иногда подвергается ковровым блокировкам со стороны ТСПУ (особенно во время массовых ограничений). Роскомнадзор может блокировать конкретный порт на вашем сервере.
- Решение: Зайдите в Outline Manager, нажмите на настройки сервера и измените "Порт для новых ключей доступа" на случайный (например, 8443, 443 или любой от 1024 до 65535). После этого создайте новый ключ доступа для своего устройства — часто это полностью решает проблему.
В: Можно ли поделиться своим VPN с семьей или друзьями?
О: Да, и Outline создан именно для этого! Вы можете создать десятки независимых ключей в Outline Manager. Вы будете видеть, сколько гигабайт трафика потратил каждый пользователь, и сможете удалить ключ в один клик.
Но помните: Чем больше людей одновременно качают тяжелые файлы через ваш единственный IP-адрес, тем выше риск привлечь внимание систем блокировки. Делитесь доступом с умом.
В: Скорость через VPN сильно упала. Как исправить?
О: Ваш магистральный провайдер пытается "зашейпить" (искусственно ограничить) трафик. Попробуйте сменить порт в настройках сервера (как описано выше) или перевыпустить ключи. Если это не помогает регулярно, возможно, вам стоит рассмотреть установку протокола Xray/Reality (см. нашу инструкцию по Amnezia VPN).
В: Почему периодически обрывается прямое подключение к серверу по SSH?
О: Чаще всего это банальный таймаут - сервер сам разрывает соединение из-за долгого бездействия (если вы ничего не вводите в консоль). Если падает активное подключение, это может означать, что провайдер видит факт SSH-соединения с зарубежным IP и обрывает его. В тяжелых случаях поможет смена хостинг-провайдера на менее "засвеченного" у систем фильтрации.
В: Мой российский провайдер увидит, какие сайты я посещаю через Outline?
О: Нет. Провайдер будет видеть только то, что вы передаете нечитаемый зашифрованный поток данных на неизвестный зарубежный IP-адрес. Ваши DNS-запросы, история посещений и скачанные файлы надежно спрятаны.
Глоссарий
- VPS (Virtual Private Server): Виртуальный выделенный сервер. Грубо говоря, это изолированная часть мощного компьютера (сервера) в дата-центре, которую вы арендуете и полностью контролируете.
- SSH (Secure Shell): Сетевой протокол, позволяющий безопасно подключаться к удаленному серверу и управлять им с помощью текстовых команд в терминале.
- Shadowsocks: Открытый протокол шифрования данных, изначально разработанный в Китае для обхода государственной цензуры. В отличие от классических VPN, он маскирует трафик под обычное HTTPS-соединение.
- DPI (Deep Packet Inspection): Технология глубокого анализа сетевых пакетов. Провайдеры используют её для проверки того, какие именно данные вы передаете, чтобы блокировать неугодные протоколы и сайты.
- ТСПУ (Технические средства противодействия угрозам): Оборудование, которое Роскомнадзор обязывает устанавливать всех российских провайдеров. Именно эта "черная коробка" занимается фильтрацией (DPI) и блокировкой сайтов.
- Раздельное туннелирование (Split Tunneling): Настройка, позволяющая пустить часть интернет-трафика (например, заблокированные сайты) через VPN, а другую часть (например, банковские приложения) - напрямую через вашего провайдера.
- Брутфорс (Brute-force): Хакерский метод угадывания паролей путем их сплошного автоматического перебора. Именно поэтому мы отключили вход по паролю в Задаче 2.
- Docker: Программная платформа, которая упаковывает приложения (в нашем случае серверную часть Outline) и все их зависимости в изолированные контейнеры. Это позволяет легко развернуть VPN на сервере одной командой, не засоряя саму операционную систему.
- KVM (Kernel-based Virtual Machine): Технология аппаратной виртуализации, позволяющая создать на сервере полностью изолированную виртуальную машину со своим ядром ОС. В отличие от более дешевой технологии контейнеризации (например, OpenVZ), KVM гарантирует, что Docker и Outline будут работать без сбоев.
- Open Source (Открытый исходный код): Модель разработки программного обеспечения, при которой любой желающий (в том числе независимые аудиторы безопасности) может посмотреть, как написан код программы. Это гарантия того, что в приложении нет скрытых шпионских модулей.
- Ping (Пинг): Время в миллисекундах, за которое пакет данных доходит от вашего компьютера до сервера и возвращается обратно. Чем он ниже, тем отзывчивее будет интернет через VPN.
- Root: Главный администратор (суперпользователь) в системах на базе Linux, имеющий абсолютные, неограниченные права на изменение любых настроек сервера.
- SSH-ключ (Криптографический ключ): Альтернатива обычному паролю. Это связка из двух файлов (приватного и публичного). Приватный ключ надежно хранится только на вашем устройстве, а публичный - на сервере. Войти на сервер может только обладатель приватного ключа.
- Бэкдор (Backdoor): Буквально "черный ход" или программная "закладка". Это преднамеренно скрытая уязвимость или специальный алгоритм в коде программы, который позволяет разработчикам, хакерам или спецслужбам получить несанкционированный доступ к устройству, обойти шифрование и незаметно перехватывать трафик в обход стандартных систем защиты. Благодаря тому, что код Outline полностью открыт (Open Source), независимые аудиторы могут проверить его и гарантировать, что в нем нет подобных скрытых угроз.
Визуализация сетевых задержек: руководство по gping для Windows
Стандартная утилита ping есть в каждой операционной системе, и мы все привыкли к её аскетичному выводу. Но когда нужно отследить плавающую проблему - например, периодические скачки пинга до удаленного VPS или потери пакетов на маршрутизаторе - вглядываться в бесконечный поток строк становится утомительно.
Здесь на помощь приходит gping - кроссплатформенная консольная утилита, написанная на Rust. Она делает ровно одну вещь, но делает её красиво: пингует указанные узлы и строит наглядный график задержек прямо в терминале.
В этой статье разберем, как установить, использовать и настроить gping в среде Windows.
Установка gping в Windows
Так как gping является утилитой командной строки, проще всего установить её через пакетные менеджеры для Windows. Это избавит вас от необходимости вручную скачивать бинарные файлы и прописывать пути в переменные среды.
Это самый простой способ для современных версий Windows 10 и 11. Откройте PowerShell или командную строку от имени администратора и введите:
winget install gpingАльтернатива: Вы всегда можете скачать скомпилированный .exe файл напрямую со страницы релизов на GitHub (репозиторий orf/gping) и положить его в любую папку, добавленную в переменную PATH.
Базовое использование
Откройте командную строку (cmd, PowerShell или Windows Terminal - в последнем графики выглядят лучше всего) и введите команду с указанием нужного хоста:
gping google.com ya.ruУтилита сразу же начнет отрисовывать график, где по вертикали будет указано время отклика (в миллисекундах), а по горизонтали - время.

Продвинутые возможности и настройка
gping не имеет отдельного конфигурационного файла, всё управление происходит через ключи командной строки. Вот самые полезные сценарии:
1. Одновременный мониторинг нескольких узлов
Это киллер-фича утилиты. Вы можете передать ей несколько адресов через пробел. gping присвоит каждому свой цвет и выведет их на один график.
Например, классический кейс диагностики сети - сравнить пинг до шлюза (допустим, вашего Mikrotik) и до внешнего DNS-сервера:
gping 192.168.88.1 8.8.8.8Так вы сразу визуально поймете, где именно происходит провал или скачок задержки - внутри локальной сети или уже у провайдера.
2. Изменение размера буфера (длины графика)
По умолчанию график отображает определенное количество последних ответов. Если вы хотите наблюдать за картиной на более длинном отрезке времени, используйте ключ -b (buffer):
gping -b 100 8.8.8.83. Принудительное использование IPv4 или IPv6
Как и в стандартном пинге, вы можете заставить утилиту использовать конкретную версию протокола ключами -4 и -6:
gping -4 ya.ru4. Изменение цвета
По умолчанию gping сам раскрашивает графики, но если вы используете специфическую цветовую схему в терминале, цвета можно задать вручную через ключ -c (поддерживаются hex-коды), в примере белый цвет:
gping -c "#FFFFFF" 8.8.8.8

Из минусов стоит отметить, что не работает через туннель
gping - это отличный пример того, как классические сетевые инструменты могут эволюционировать. Он не заменяет тяжеловесные системы мониторинга вроде Zabbix или Prometheus, но идеально подходит для "здесь и сейчас", когда нужно быстро оценить состояние сети перед глазами. Если ваша работа связана с настройкой сетей, диагностикой подключений или администрированием серверов, gping определенно заслуживает места на вашей рабочей машине.
Глоссарий
- Ping (Пинг) - базовая сетевая утилита для проверки целостности и качества соединений в сетях на основе TCP/IP. Отправляет эхо-запросы (ICMP Echo-Request) к проверяемому узлу и фиксирует время поступления ответов.
- VPS (Virtual Private Server) - виртуальный выделенный сервер. В контексте статьи - удаленная машина, к которой настраивается подключение и стабильность которого нужно проверять.
- Пакетный менеджер (Package Manager) - программное обеспечение для автоматизации процесса установки, обновления, настройки и удаления программ. В Windows популярными примерами являются winget (официальный от Microsoft), Scoop и Chocolatey.
- Переменная среды PATH - системная переменная, содержащая список директорий, в которых операционная система ищет исполняемые файлы. Если путь к файлу утилиты (например, .exe) добавлен в PATH, её можно запускать из командной строки без указания полного пути.
- Шлюз (Gateway) - аппаратный маршрутизатор или программное обеспечение, настроенное для соединения сетей с разными протоколами (в домашних и офисных сетях обычно это роутер, через который идет выход в интернет).
- DNS-сервер (Domain Name System) - компьютер, распределенная система для получения информации о доменах. Главная функция - преобразование удобных для человека доменных имён (например, google.com) в IP-адреса, понятные компьютерам (например, 8.8.8.8).
- IPv4 и IPv6 (Internet Protocol version 4 / 6) - версии интернет-протокола, определяющие формат IP-адресов. IPv4 использует 32-битные адреса (формат 192.168.1.1), а IPv6 - 128-битные адреса, созданные для решения проблемы нехватки адресов в сети.
- Hex-код цвета (Hexadecimal code) - способ кодирования цвета с помощью шестнадцатеричной системы счисления. Записывается с решеткой в начале, например #00FF00 (зеленый).
- Rust - современный мультипарадигмальный компилируемый язык программирования общего назначения, на котором написана утилита gping. Отличается высокой скоростью работы и безопасностью работы с памятью.
Как настроить SSH Config и перестать путаться в ключах и IP-адресах
Если ваша работа или хобби связаны с IT, вы наверняка регулярно подключаетесь к удаленным машинам. Поднять личный VPN на Amnezia, настроить Outline, закинуть скрипт на рабочий сервер или поковырять домашнюю медиастанцию - для всего этого мы используем SSH.
Но когда серверов становится больше двух, начинается классическая боль. Приходится держать в голове (или в бесконечных заметках) кучу IP-адресов, логинов и путей к SSH-ключам.
Вместо того чтобы каждый раз набирать монструозные конструкции вроде:
ssh -i ~/.ssh/vpn_private_key root@44.158.22.1...можно настроить всё так, чтобы подключаться к любому серверу в два слова.
Сегодня на www.riopass.ru разберем, как один простой текстовый файл сэкономит вам массу времени и нервов.
Знакомьтесь: файл конфигурации SSH
Вся магия скрывается в файле config, который лежит в директории с вашими SSH-ключами.
- Для Windows:
C:\Users\ИмяПользователя\.ssh\config (или %USERPROFILE%\.ssh\config) - Для Linux / macOS:
~/.ssh/config
Если такого файла у вас в папке .ssh еще нет - просто создайте его (это обычный текстовый файл без расширения, , а просто не config.txtconfig).
Пример идеальной конфигурации
Давайте посмотрим на реальный пример. Допустим, у нас есть три разных сервера с разными ключами. Открываем наш файл config в любом текстовом редакторе и пишем:
Host amnezia
HostName 44.158.22.1
User root
IdentityFile ~/.ssh/vpn
Host outline
HostName 98.145.22.3
User root
IdentityFile ~/.ssh/german
Host server
HostName 98.145.22.154
User root
IdentityFile ~/.ssh/serverРазбираем теорию: что означают эти параметры?
Структура файла максимально проста и логична:
Host- это алиас (псевдоним), который вы придумываете сами. Именно это слово вы будете писать в терминале. Назвать можно как угодно:amnezia,work-pc,my-pi5.HostName- реальный IP-адрес вашего сервера (или доменное имя).User- имя пользователя, под которым вы логинитесь (чаще всего это root, но может быть ubuntu, pi, admin и т.д.).IdentityFile- полный путь к вашему приватному SSH-ключу от этого конкретного сервера.
Важное примечание для пользователей Windows: в параметре IdentityFile можно использовать пути в стиле Linux (~/.ssh/vpn), современные версии OpenSSH в Windows 10/11 отлично их понимают.
Как это работает на практике?
Теперь магия в действии. Открываем терминал и вместо того, чтобы судорожно искать IP-адрес и нужный ключ, просто пишем:
ssh amneziaИ всё! Система сама посмотрит в config, поймет, что под словом amnezia скрывается адрес 44.158.22.1, возьмет пользователя root и подсунет нужный ключ ~/.ssh/vpn.
Точно так же, для подключения к серверу Outline:
ssh outlineПару советов напоследок
- Права доступа (для Linux/macOS): SSH очень ревностно относится к безопасности. Убедитесь, что у вашего файла конфигурации стоят правильные права доступа, иначе SSH может отказаться его читать. Выполните команду: chmod 600 ~/.ssh/config.
- Организация: Если серверов станет совсем много, вы можете оставлять в файле config комментарии, используя символ #. Например: # Мои личные VPN-серверы.
Настроив этот файл один раз, вы больше никогда не запутаетесь в ключах и IP-адресах.
Делаем SSH еще удобнее
Но если базовая настройка вас уже не впечатляет, давайте добавим пару параметров, которые используют настоящие джедаи терминала. Их можно прописать как для конкретного сервера, так и для всех сразу.
1. Чтобы соединение не "отваливалось" (ServerAliveInterval)
Знакомая ситуация: вы подключились к серверу, отошли заварить кофе, возвращаетесь, а терминал завис и не реагирует на нажатия клавиш. Это происходит из-за того, что провайдеры или домашние роутеры автоматически обрывают неактивные сетевые сессии.
Чтобы этого избежать, добавим в самый верх файла config глобальное правило:
Host *
ServerAliveInterval 60Звездочка Host * означает, что правило применится ко всем серверам. Теперь ваш компьютер будет каждые 60 секунд отправлять "невидимый" пинг (keep-alive пакет), чтобы дать понять маршрутизаторам: "Эй, мы тут работаем, соединение не рвать!".
2. Проброс портов (LocalForward): безопасный доступ к закрытым админкам
Допустим, на вашем домашнем сервере или Raspberry Pi крутится свежий проект на FastAPI, локальная база данных или какая-нибудь веб-админка, которая слушает только локальный порт (например, 8000). Открывать этот порт наружу в интернет - плохая идея с точки зрения безопасности.
Тут на помощь приходит проброс портов через SSH-туннель:
Host dev-server
HostName 98.145.22.154
User root
IdentityFile ~/.ssh/server
LocalForward 8000 localhost:8000Что это дает? Как только вы подключаетесь командой ssh dev-server, SSH создает защищенный туннель. Теперь вы можете просто открыть браузер на своем рабочем компьютере, вбить http://localhost:8000, и вы попадете прямо в админку удаленного сервера! Трафик при этом будет полностью зашифрован.
3. Прыжок через сервер (ProxyJump): доступ к закрытым сетям
Представьте ситуацию: у вас есть домашняя Raspberry Pi или рабочий сервер базы данных, к которому нет прямого доступа из интернета (он спрятан за NAT или корпоративным фаерволом). Чтобы на него попасть, вам нужно сначала подключиться к определенному серверу-шлюзу (Bastion host), и уже с него заходить на целевую машину.
Раньше приходилось делать это в два этапа или, что еще хуже, хранить свои приватные SSH-ключи на промежуточном сервере-шлюзе (что категорически нельзя делать из соображений безопасности).
С параметром ProxyJump вы можете сделать это одной командой, а все ключи останутся только на вашем компьютере:
# Сначала описываем наш сервер-шлюз (через который будем прыгать)
Host gateway
HostName 98.145.22.154
User root
IdentityFile ~/.ssh/server
# Теперь описываем закрытый сервер
Host secret-pi
HostName 192.168.1.50 # Внутренний IP-адрес в закрытой сети!
User pi
IdentityFile ~/.ssh/pi_key
ProxyJump gatewayКак это работает? Когда вы пишете в терминале ssh secret-pi, ваш SSH-клиент сам понимает, что нужно сделать:
- Он молча подключается к
gateway. - Прямо внутри этого соединения создает безопасный туннель до внутреннего адреса
192.168.1.50. - Авторизуется на secret-pi, используя ваш локальный ключ
~/.ssh/pi_key.
Вы сразу попадаете в консоль целевого сервера, как будто подключились к нему напрямую. Быстро, безопасно и максимально элегантно.
Файл ~/.ssh/config - это тот самый инструмент, настройка которого занимает 10 минут, но экономит часы рабочего времени и спасает нервные клетки в будущем. Начните с простых алиасов, а когда почувствуете себя уверенно - экспериментируйте с пробросом портов и прыжками через хосты.
Глоссарий: по терминам из статьи
- SSH (Secure Shell) - сетевой протокол, который позволяет безопасно (в зашифрованном виде) управлять удаленным компьютером или сервером через командную строку.
- SSH-ключ (IdentityFile) - криптографический файл, который работает как ваш цифровой пропуск. Состоит из двух частей: открытого ключа (хранится на сервере) и закрытого (хранится у вас). Позволяет входить на сервер без ввода пароля, что гораздо безопаснее и удобнее.
- Алиас (Host / Псевдоним) - короткое и понятное выдуманное имя (например,
amneziaилиhome-pi), которое заменяет собой длинный IP-адрес для удобства ввода команд. - Проброс портов (Port Forwarding / SSH-туннелирование) - создание защищенного "коридора" внутри SSH-соединения. Позволяет безопасно прокинуть локальный порт удаленного сервера на ваш рабочий компьютер, чтобы открыть закрытую веб-админку в своем браузере.
- Bastion Host (Сервер-шлюз / Jump Server) - промежуточный сервер, имеющий выход в интернет, через который осуществляется доступ к внутренним, изолированным от сети серверам. Именно для прыжка через него мы используем параметр
ProxyJump. - Keep-alive пакеты - специальные "пустые" сигналы, которые ваш компьютер периодически отправляет на сервер, чтобы сетевое оборудование провайдера не разорвало соединение из-за долгого бездействия (настраивается параметром
ServerAliveInterval). - NAT (Network Address Translation) - механизм в маршрутизаторах, который позволяет нескольким устройствам в домашней или корпоративной сети выходить в интернет под одним общим («белым») IP-адресом. Из-за NAT к внутренним устройствам (например, домашней Raspberry Pi) нельзя напрямую подключиться извне без дополнительных настроек (таких как VPN или ProxyJump).
В условиях постоянно умнеющих систем глубокого анализа пакетов (DPI) стандартные протоколы обхода блокировок всё чаще попадают под раздачу. Если ваши пользователи или вы сами столкнулись с тем, что Outline VPN перестал подключаться, проблема, скорее всего, кроется в распознавании сигнатур Shadowsocks брандмауэром.
Начиная с версии Outline Client 1.9.0, разработчики внедрили поддержку опции "prefix" (префикс подключения). В этой статье разберем теорию того, как это работает, и на практических примерах покажем, как применить это для ваших ключей доступа.
Теоретическая часть: Как работает маскировка префиксом?
Опция "prefix" позволяет добавить заданный список байтов в самое начало TCP-соединения Shadowsocks (в качестве первых байтов соли).
Что это дает на практике? DPI-системы провайдеров анализируют заголовки пакетов. Добавляя специфичный префикс, мы заставляем наше Shadowsocks-соединение выглядеть для брандмауэра как совершенно другой, легитимный и разрешенный в сети протокол (например, обычный веб-серфинг по HTTP/HTTPS или DNS-запрос). Брандмауэр "видит" знакомый заголовок, не распознает в нем VPN-туннель и пропускает трафик.
Три главных правила использования префиксов:
- Длина не более 16 байт. Более длинные префиксы повышают вероятность коллизий солей шифрования. Это не только снизит безопасность соединения, но и может выдать ваш трафик аналитическим системам. Используйте минимально возможную длину, достаточную для обхода блокировки.
- Соответствие портов. Это критически важно для сетевой инфраструктуры. Выбранный префикс должен логически соответствовать порту сервера. Если вы маскируете трафик под HTTPS (TLS), используйте порт 443. Если под DNS - 53.
- Метод проб и ошибок. Если текущий префикс перестал работать, скорее всего, сигнатуру заблокировали. Просто смените префикс и порт на другие из таблицы ниже.
Практические примеры префиксов
В таблице собраны готовые значения для популярных протоколов. Обратите внимание, что формат записи отличается в зависимости от того, какой тип ключа вы используете.
| Маскируемый протокол | Рекомендуемые порты | Формат JSON (для ssconf://) | URL-формат (для ss://) |
|---|---|---|---|
| HTTP-запрос | 80 (http) | "POST " | POST%20 |
| HTTP-ответ | 80 (http) | "HTTP/1.1 " | HTTP%2F1.1%20 |
| DNS over TCP | 53 (dns) | "\u0005\u00DC\u005F\u00E0\u0001\u0020" | %05%C3%9C_%C3%A0%01%20 |
| TLS ClientHello (HTTPS) | 443, 463, 993, 5228 и др. | "\u0016\u0003\u0001\u0000\u00a8\u0001\u0001" | %16%03%01%00%C2%A8%01%01 |
| Данные приложения TLS | 443, 463, 993, 5228 и др. | "\u0013\u0003\u0003\u003F" | %13%03%03%3F |
| TLS ServerHello | 443, 463, 993, 5228 и др. | "\u0016\u0003\u0003\u0040\u0000\u0002" | %16%03%03%40%00%02 |
| SSH | 22 (ssh), 830 | "SSH-2.0\r\n" | SSH-2.0%0D%0A |
Инструкция по настройке ключей
Вариант 1: Динамические ключи доступа (ssconf://)
Если вы используете динамическое распределение ключей (когда конфигурация подтягивается по ссылке), вам нужно отредактировать JSON-файл конфигурации на вашем сервере.
Добавьте параметр "prefix" и укажите значение в JSON-кодировке. Пример конфигурации, маскирующейся под DNS-запрос:
{
"server": "example.com",
"server_port": 53,
"password": "your_secure_password",
"method": "chacha20-ietf-poly1305",
"prefix": "\u0005\u00DC\u005F\u00E0\u0001\u0020"
}(Не забудьте изменить порт на соответствующий протоколу, в данном случае - 53).
Вариант 2: Статические ключи доступа (ss://)
Если вы генерируете классические ключи через Outline Manager, вам придется модифицировать саму строку ключа перед тем, как отправлять её пользователю.
Здесь используется префикс в URL-кодировке. Просто добавьте параметр &prefix=значение в самый конец ссылки.
Пример (маскировка под TLS ClientHello):
ss://Z34nthataITHiTNIHTohithITHbVBqQ1o3bkk@127.0.0.1:443/?outline=1&prefix=%16%03%01%00%C2%A8%01%01Совет для продвинутых администраторов: > Если вам нужно закодировать свой собственный кастомный префикс из JSON-формата в URL-формат, не нужно искать сторонние конвертеры. Откройте консоль разработчика в любом браузере (F12 -> вкладка Console) и используйте встроенную функцию JS:
encodeURIComponent("\u0016\u0003\u0001\u0000\u00a8\u0001\u0001")Нажмите Enter, и консоль выдаст готовую строку для вставки в ss:// ссылку: '%16%03%01%00%C2%A8%01%01'.
Использование префиксов - это эффективный и легковесный способ продлить жизнь вашим туннелям без необходимости разворачивать тяжеловесные решения вроде Xray/V2Ray. Экспериментируйте с портами и сигнатурами, чтобы найти оптимальный вариант для вашего провайдера.
Остались вопросы или что-то не работает? Пишите на почту тех поддержки riopass.ru, разберем любые ошибки! Но прежде прочитайте FAQ ниже.
Часто задаваемые вопросы (FAQ)
В: Нужно ли обновлять сам сервер Outline для работы префиксов?
O: Нет, вся магия происходит на стороне клиента и в самом формате ключа доступа. Сервер Shadowsocks просто обрабатывает входящий TCP-поток. Главное требование - на устройствах пользователей должно быть установлено приложение Outline Client версии 1.9.0 или новее.
В: Я добавил префикс в ссылку ss://, но Outline перестал подключаться. Что я сделал не так?
О: В 90% случаев проблема кроется в несовпадении порта. Если вы добавили префикс от HTTP-запроса, порт в вашем ключе (и на сервере!) обязательно должен быть 80. Если маскируетесь под TLS (HTTPS) - порт должен быть 443 (или другой из списка поддерживаемых).
Вторая частая ошибка - неправильная кодировка. Убедитесь, что для статических ss:// ссылок вы используете именно URL-кодированный вариант префикса (с процентами %), а не JSON.
В: Какой префикс самый надежный для обхода глухих блокировок?
О: В современных реалиях DPI-систем наиболее надежной является маскировка под обычный защищенный веб-серфинг. Используйте префиксы TLS ClientHello или Данные приложения TLS в связке с портом 443. Провайдеры крайне редко блокируют 443-й порт, так как на нем работает 99% сайтов в интернете, включая банковские и государственные сервисы.
В: Можно ли придумать свой собственный префикс, длиннее 16 байт, чтобы точно никто не догадался?
О: Категорически не рекомендуется. Официальная документация неспроста вводит ограничение в 16 байт. Использование более длинных префиксов приводит к "коллизиям солей" при шифровании Shadowsocks. Говоря простым языком: ваш зашифрованный трафик станет предсказуемым. DPI-система быстро заметит повторяющиеся паттерны и заблокирует ваш IP-адрес. Правило простое: используйте максимально короткий префикс, который справляется с блокировкой.
В: Outline Manager выдал мне ключ со случайным портом (например, 33142). Как мне поменять его на 443 для префикса TLS?
О: К сожалению, стандартный графический интерфейс Outline Manager не позволяет вручную изменять порты для уже созданных ключей. Чтобы задать нужный порт, вам потребуется либо пересоздать сервер/пользователя с нужными параметрами через API, либо подключиться к вашему VPS по SSH и вручную отредактировать конфигурационный файл Shadowsocks (обычно это /opt/outline/persisted-state/shadowsocks.json), после чего перезапустить контейнер сервера.
В: Работают ли эти настройки на мобильных устройствах?
О: Да. Приложения Outline Client для iOS и Android обновляются синхронно с десктопными версиями. Если у пользователя на смартфоне установлен клиент версии 1.9.0+, он без проблем распознает ключ с добавленным параметром &prefix=.
Глоссарий к гайду
- DPI (Deep Packet Inspection - Глубокий анализ пакетов)
Технология проверки сетевого трафика, которую используют интернет-провайдеры и государственные регуляторы. DPI не просто смотрит на адреса отправителя и получателя, а анализирует само содержимое (заголовки) пакетов данных, чтобы выявлять и блокировать специфичные протоколы, такие как VPN. - Shadowsocks
Защищенный протокол туннелирования данных с открытым исходным кодом, лежащий в основе работы Outline VPN. Был изначально разработан для обхода систем цензуры (в частности, Великого китайского файрвола). - Префикс подключения (Prefix)
Искусственно заданная последовательность байтов, которая добавляется в самое начало сетевого пакета. Её цель - подменить "подпись" (сигнатуру) трафика, чтобы система DPI приняла VPN-туннель за обычный, разрешенный в сети трафик (например, за загрузку веб-страницы). - Соль (Cryptographic Salt)
Случайный набор данных, который добавляется к исходной информации перед её шифрованием. В контексте TCP-соединений Shadowsocks соль гарантирует, что даже при передаче одних и тех же данных зашифрованный трафик всегда будет выглядеть по-разному, усложняя его анализ. - Коллизия солей (Salt Collision)
Нежелательная ситуация в криптографии, когда для разных сеансов шифрования используется одна и та же соль (например, из-за слишком длинного статического префикса). Это создает предсказуемые паттерны в трафике, что позволяет DPI-системам легко вычислить и заблокировать VPN-соединение. - TCP (Transmission Control Protocol)
Один из базовых протоколов интернета, обеспечивающий надежную и последовательную доставку данных между программами. Shadowsocks (и опция префикса) манипулирует первыми байтами именно на уровне TCP-соединения. - ClientHello / ServerHello
Стандартные системные сообщения, которыми клиент (например, ваш браузер) и сервер обмениваются на самом первом этапе установки защищенного TLS-соединения (процесс рукопожатия, "handshake"). Поскольку эти сообщения всегда передаются в открытом виде до начала самого шифрования, маскировка префиксов Outline под них выглядит для брандмауэров максимально естественно. - DNS over TCP
Метод отправки запросов к серверам доменных имен (DNS) с использованием протокола TCP (порт 53) вместо стандартного UDP. Маскировка под DNS часто помогает пробиться даже через самые строгие корпоративные или гостевые Wi-Fi сети. - JSON-кодировка
Способ текстового представления данных. В Outline используется для настройки динамических ключей (ssconf://). Префиксы в этом формате часто содержат управляющие Unicode-коды (например,\u0016\u0003). - URL-кодировка
Механизм преобразования специальных символов в формат, который безопасно передавать прямо в адресной строке или веб-ссылке. Для статических ключей Outline (ss://) JSON-символы префикса конвертируются в URL-формат, начинаясь со знака процента (например,%16%03).
WAL в SQLite: что это такое и как работает режим журнала предзаписи?
WAL (Write-Ahead Logging), или журналирование с упреждающей записью - это один из самых популярных и надежных механизмов работы баз данных. Его главная задача - обеспечить сохранность данных при сбоях (например, отключении электричества) и значительно ускорить работу при одновременном чтении и записи.
Чтобы понять WAL, давайте сравним его со старым классическим подходом.
Простая аналогия: Бухгалтерская книга
Представьте, что база данных - это огромная бухгалтерская книга, с которой работают несколько человек.
- Стандартный режим (Rollback Journal): Когда бухгалтер хочет изменить запись на странице 10, он берет чистый лист (журнал откатов), переписывает туда старые данные со страницы 10, прячет в сейф, а затем стирает старые данные в самой книге и пишет новые. Если в этот момент придет начальник и захочет почитать страницу 10, ему скажут: "Подождите, я еще не закончил писать!". Чтение блокируется записью.
- Режим WAL: Бухгалтер не трогает саму книгу. Он берет стикер (WAL-файл), пишет на нем новые данные и приклеивает поверх страницы 10. Если приходит начальник, бухгалтер говорит: "Читай страницу 10, а если там есть стикер - читай данные со стикера". В итоге бухгалтер может клеить новые стикеры, а начальник может одновременно читать книгу со стикерами. Никто никого не ждет. Периодически (например, ночью, когда никого нет) данные со стикеров аккуратно переписываются в саму книгу.
Как это работает технически?
В традиционном подходе каждое изменение напрямую модифицирует основной файл базы данных. Это медленно и требует строгих блокировок.
В режиме WAL процесс выглядит так:
- Запись: Когда вы обновляете или добавляете данные, база данных не трогает основной файл (
db.sqlite3или аналогичный). Вместо этого она дописывает изменения в конец специального файла - WAL-журнала (db.sqlite3-wal). Дописывать в конец файла (последовательная запись) жесткому диску гораздо проще и быстрее, чем искать нужное место в гигантском основном файле (случайная запись). - Чтение: Когда кто-то делает SELECT-запрос, база данных сначала смотрит в основной файл, а затем сверяется с WAL-файлом. Если нужные данные были недавно изменены, она берет свежую версию из WAL.
- Чекпоинт (Checkpoint): Со временем WAL-файл разрастается. База данных автоматически (или по вашей команде) запускает процесс "чекпоинта" - она берет все накопленные изменения из WAL-файла и переносит их в основной файл базы данных. После этого WAL-файл можно перезаписывать заново.
Главные преимущества WAL
- Параллельность (Concurrency): Это главная фишка WAL. Читатели не блокируют писателей, а писатели не блокируют читателей. В веб-разработке это критически важно: пользователи могут просматривать сайт, пока фоновый процесс обновляет базу данных.
- Скорость записи: Как уже упоминалось, Append-only (запись только в конец файла) работает намного быстрее, особенно на классических HDD дисках, да и на SSD снижает износ.
- Надежность (ACID): Так как изменения сначала гарантированно записываются в лог на диск, при внезапном отключении сервера база данных после перезагрузки просто прочитает WAL-файл и применит изменения, которые не успели попасть в основной файл.
Есть ли у WAL минусы?
Да, идеальных решений не бывает:
- Сетевые диски: Режим WAL требует использования разделяемой памяти (тот самый файл *-shm). Это значит, что он не работает (или работает с риском поломки данных), если файл базы лежит на сетевой файловой системе (NFS, SMB). База и приложение должны быть на одном физическом сервере/контейнере.
- Немного замедляется чтение: Так как базе нужно проверять два места (основной файл и WAL), чтение может стать микроскопически медленнее, особенно если WAL-файл сильно разросся до чекпоинта.
- Много файлов: Вместо одного аккуратного файла у вас появляется три (
.sqlite3, .sqlite3-wal, .sqlite3-shm).
Где это используется?
WAL - это не эксклюзив SQLite. Это фундаментальный концепт.
- PostgreSQL использует WAL в качестве основы своей архитектуры, не только для надежности, но и для репликации (передачи данных на резервные серверы).
- В MySQL (InnoDB) есть Redo Log, который по сути выполняет точно такую же функцию упреждающей записи.
Как включить через командную строку (SQLite CLI).
Если у вас установлена консольная утилита sqlite3, откройте терминал и подключитесь к файлу вашей базы данных (в Django по умолчанию это db.sqlite3):
sqlite3 db.sqlite3Затем внутри консоли SQLite выполните команду:
sqlite> PRAGMA journal_mode=WAL;В ответ консоль должна вывести слово wal. Выйти из утилиты можно командой .exit.
Дополнительная настройка для Django
Так как настройка постоянная, вам не обязательно менять settings.py в Django. Вы можете просто выполнить PRAGMA journal_mode=WAL один раз, и Django начнет работать с базой в режиме WAL.
Однако, если вы хотите, чтобы при создании базы на новом сервере Django сам пытался использовать WAL, вы можете передать опцию init_command в настройках подключения к базе данных (в settings.py):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
'OPTIONS': {
# Этот запрос будет выполняться при каждом новом соединении
'init_command': 'PRAGMA journal_mode=WAL;',
}
}
}Как убедиться, что WAL работает?
Когда режим WAL включен и к базе данных происходит активное обращение, рядом с вашим файлом базы данных появятся два новых временных файла:
db.sqlite3-wal- файл самого лога (Write-Ahead Log).db.sqlite3-shm- файл разделяемой памяти (Shared Memory).
Важно: Никогда не удаляйте эти файлы вручную во время работы приложения! Это может привести к повреждению данных. SQLite сам управляет их жизненным циклом.
Как вернуть стандартный режим?
Если по какой-то причине WAL вам не подошел (например, база лежит на сетевом диске без поддержки блокировок, что для WAL критично), вы можете вернуть стандартный режим (DELETE) командой:
PRAGMA journal_mode=DELETE;Глоссарий.
- Django: Популярный фреймворк на языке Python для быстрой разработки веб-приложений.
- SQLite: Легковесная реляционная база данных, которая хранит все таблицы и данные в одном обычном файле на диске (часто db.sqlite3).
- WAL (Write-Ahead Logging / Журналирование с упреждающей записью): Современный механизм работы баз данных. При изменении данных они сначала быстро дописываются в специальный лог-файл, что позволяет другим пользователям продолжать чтение без блокировки базы.
- Rollback Journal (Журнал откатов): Классический (и более медленный) режим SQLite. При изменении данных старые значения копируются во временный журнал. Во время этого процесса база блокируется для других операций.
- PRAGMA: Специальная SQL-команда в SQLite, которая используется для изменения внутренних настроек и параметров базы данных (например, для переключения в режим WAL).
- Чекпоинт (Checkpoint): Процесс в режиме WAL, во время которого накопленные в лог-файле изменения массово переносятся в основной файл базы данных.
- .shm файл (Shared Memory): Временный файл разделяемой памяти, который SQLite создает рядом с базой в режиме WAL. Он нужен как "оглавление", чтобы несколько процессов могли быстро находить данные в лог-файле.
- Последовательная запись (Append-only): Добавление данных строго в конец файла (как в режиме WAL). Для жесткого диска это самая быстрая операция, так как не нужно тратить время на поиск нужного места на диске.
- Параллельность (Concurrency): Способность базы данных или приложения обрабатывать множество запросов (чтение и запись) от разных пользователей одновременно, не заставляя их ждать друг друга.
- ACID (Atomicity, Consistency, Isolation, Durability): Набор стандартов для баз данных, гарантирующий, что транзакции (изменения данных) будут выполнены надежно и не потеряются даже при сбое питания или критической ошибке сервера.
- Сетевая файловая система (NFS, SMB): Способ хранения файлов, при котором они физически находятся на другом сервере, а компьютер обращается к ним по локальной сети. Режим WAL крайне не рекомендуется использовать на таких системах из-за проблем с блокировками файлов.
Ситуация с блокировками классических VPN-сервисов и протоколов (OpenVPN, WireGuard, Outline, Shadowsocks и т.д.) становится всё сложнее. Системы глубокого анализа трафика (DPI) легко распознают их сигнатуры и режут скорость или блокируют соединения полностью.
Сегодня мы разберем ультимативное решение - селф-хостинг Amnezia VPN на собственном сервере с использованием протокола Xray (Reality), который маскирует ваш трафик под обычные запросы к белым сайтам.
Мы не просто поставим VPN, а сделаем это по уму, защитив сервер от взлома.

Задача 1: Аренда сервера (VPS).
Для начала нам нужен виртуальный сервер за пределами РФ. (нужен VPS за пределами РФ и не у хостера, который аффилирован с российскими компаниями или имеет российские стыки. Это не паранойя - это реальная техническая проблема, и она влияет и на приватность, и на обход блокировок, и на SEO‑репутацию IP.)
- Выберите любого удобного хостинг-провайдера (Hetzner, DigitalOcean, Vultr или Linode (Akamai), OVHcloud, Scaleway или посредников например PQ.Hosting). Локация: Для пользователей из РФ идеальный баланс между пингом и стабильностью дают Германия, Нидерланды или Швеция.
- Арендуйте самый дешевый тариф (обычно хватает 1 vCPU и 2 GB RAM).
- Операционная система: Строго чистая Ubuntu 22.04(и выше) или Debian 12(и выше).
- Виртуализация: Строго KVM (Избегайте OpenVZ или LXC - на них Docker (сердце Amnezia) может работать нестабильно или не запуститься вовсе.).
После оплаты хостер выдаст вам IP-адрес сервера и пароль пользователя root.
Задача 2: Базовая безопасность сервера (Отказ от паролей).
Оставлять сервер с доступом по паролю в интернете - плохая идея. Его начнут атаковать боты-брутфорсеры в первые же минуты. Мы настроим доступ по криптографическому SSH-ключу.
Откройте PowerShell (если у вас Windows) или терминал (Linux/macOS) и выполните следующие шаги:
0. Первая кровь - смена пароля root
Подключитесь к серверу через терминал:
ssh root@ВАШ_IP- Введите команду passwd для смены пароля.
Важно: Не используйте простые слова. Мы рекомендуем генерировать пароль длиной не менее 13 символов, включающий цифры, спецсимволы и разные регистры.
Для создания надежного пароля воспользуйтесь генератором на нашем сайте riopass.ru. Такой пароль методом брутфорса (перебора) будут взламывать десятилетиями.
На домашнем ПК:
1. Генерация ключа:
Введите команду:
ssh-keygen -t ed25519 -f "$HOME\.ssh\vpn_key" -C "amnezia-server"Нажмите дважды Enter, когда система попросит ввести пароль (passphrase). В вашей папке .ssh появятся два файла: vpn_key (ваш секретный ключ) и vpn_key.pub (публичный ключ для сервера).
2. Копирование публичного ключа на сервер:
Выведите содержимое публичного ключа на экран и скопируйте его:
cat "$HOME\.ssh\vpn_key.pub"Теперь подключитесь к вашему новому серверу по паролю, который дал хостер:
ssh root@ВАШ_IP_АДРЕССоздайте папку для ключей и запишите туда скопированный ключ:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keysВставьте ваш ключ (ssh-ed25519...) в редактор, сохраните файл (Ctrl+O, Enter, Ctrl+X) и выдайте права:
chmod 600 ~/.ssh/authorized_keys3. Отключение входа по паролю:
Теперь скажем серверу пускать только владельца ключа. Откройте конфигурацию SSH:
nano /etc/ssh/sshd_configНайдите и измените следующие строки:
PasswordAuthentication no
PermitRootLogin prohibit-password
KbdInteractiveAuthentication noПерезапустите службу SSH, чтобы применить настройки:
systemctl restart sshГотово! Ваш сервер теперь неприступен, но лучше ещё настройте Firewall и Fail2Ban!
Задача 3: Установка Amnezia VPN
Теперь переходим к самому VPN. Никаких сложных консольных команд больше не будет - всё делается через удобное приложение.
- Подключение сервера:
- Скачайте клиент Amnezia VPN (если не открывается ищите зеркало сайта) для вашего компьютера и запустите его.
Выберите "Настроить свой сервер".

Введите IP-адрес сервера и имя пользователя root.

- В поле "Пароль или закрытый ключ SSH" нужно вставить содержимое вашего приватного ключа.
- Откройте PowerShell и введите: cat "$HOME\.ssh\vpn_key". Выделите весь текст от -----BEGIN OPENSSH PRIVATE KEY----- до конца и скопируйте его в окно Amnezia. Нажмите Продолжить.
- Выбор протокола Xray:
- Программа подключится к серверу и предложит варианты настройки. Выберите "Пользовательская установка" (или Мастер настройки), чтобы вручную выбрать протоколы.
- Обязательно отметьте протокол Xray. Он обеспечивает максимальную защиту от блокировок по сигнатурам.
- Клиент сам установит Docker и развернет контейнеры. Это займет пару минут.
- Маскировка трафика (SNI):
Чтобы провайдер не резал скорость, трафик нужно замаскировать под легальный сайт.- Перейдите в настройки сервера в Amnezia -> Протоколы -> Xray.
- В поле "Сайт для маскировки" (SNI) впишите крупный зарубежный домен, который не заблокирован в РФ. Отличные вариант будет, чтоб домен находился в той же стране что и Ваш VPS и был.
- Сохраните настройки. Сервер перегенерирует ключи.
Этап 4: Раздельное туннелирование (Split Tunneling)
Главная "фишка" Amnezia - возможность выбирать, какие сайты должны ходить через VPN, а какие напрямую. Это полезно, если вам нужно зайти в российский банк или на Госуслуги, не выключая туннель.
Перейдите на вкладку "Раздельное туннелирование" в приложении.


- Исключение конкретных приложений
Если вы не хотите, чтобы VPN влиял на пинг в онлайн-играх или работу тяжелого софта, который чувствителен к смене IP, вы можете настроить App-based Split Tunneling.В настройках выберите режим работы "Приложения из списка не должны работать через VPN" или "Для всех, кроме списка".

- Добавьте исполняемые файлы (например, browser.exe, discord.exe или ваш рабочий терминал).
Это позволяет, например, оставить один браузер "чистым" для работы с российскими сервисами, а другой пустить через туннель для обхода блокировок. Единственный минус, это нужна настраивать на каждом клиенте, хотя можно слить настройки в бэкап и разворачивать их.
- Доступ к домашнему серверу и локалке (LAN Bypass)
Типичная проблема: включаешь VPN и больше не можешь зайти на свой домашний NAS, Raspberry Pi или сервер на Proxmox по локальному адресу. Чтобы этого не происходило, в Amnezia нужно настроить исключения для локальных подсетей.- Перейдите в настройки раздельного туннелирования.
В поле для исключения IP-адресов добавьте вашу домашнюю подсеть в формате CIDR.

- Например, если адрес вашего сервера 192.168.1.10, добавьте диапазон 192.168.1.0/24.
- Теперь весь трафик к вашим локальным железкам будет идти напрямую, минуя сервер VPN, а доступ к админ-панелям и сетевым папкам сохранится.
Как поделиться доступом с телефоном?
Вам не нужно настраивать всё заново на смартфоне.
- Скачайте приложение Amnezia на телефон с Google Play или iStore.
- В десктопном клиенте (на компьютере) нажмите кнопку «Поделиться» в настройках сервера или подключения.
- Отсканируйте появившийся QR-код камерой смартфона прямо из приложения Amnezia.
Поздравляем! Теперь у вас есть собственный, надежный и неподконтрольный цензуре VPN, работающий на максимальной скорости вашего провайдера.
Остались вопросы или что-то не работает? Пишите на почту тех поддержки riopass.ru, разберем любые ошибки!
FAQ: Частые вопросы и решение проблем
В: Как правильно выбрать домен для маскировки (SNI) под конкретную страну?
О: Строгой привязки нет, но для максимальной «естественности» лучше выбирать крупные сайты той страны, где физически находится ваш сервер. Это нужно, чтобы у DPI не возникло подозрений, почему плотный трафик в Германию идет под маской сайта США. Ищите сайты главных банков, университетов или государственных порталов (например, для Финляндии - www.nokia.com, для Латвии - www.swedbank.lv, для Германии - www.sap.com).
Важно: Сайт должен поддерживать HTTPS (TLS) и не быть заблокированным в РФ. При смене SNI клиент перегенерирует ключи, их нужно будет обновить на ваших устройствах.
В: Провайдер всё-таки заблокировал IP-адрес моего сервера. Что делать?
О: Такое случается, если ваш сервер привлек внимание систем DPI (например, вы раздали доступ десятку друзей, и они начали одновременно качать торренты).
Решение: Напишите в поддержку вашего хостинг-провайдера с просьбой сменить IP-адрес (многие идут навстречу бесплатно). Если откажут - просто арендуйте новый сервер за пару евро. С нашей инструкцией вы перенастроите всё с нуля ровно за 5 минут.
В: Сервер пингуется, но интернет через VPN не работает (скорость 0 байт/с). В чем дело?
О: Это типичный сценарий работы ТСПУ (систем глубокого анализа трафика Роскомнадзора). Пинг (протокол ICMP) - это крошечные диагностические пакеты, которые почти никогда не блокируют. А вот ваш VPN-трафик идет по другим протоколам (UDP/TCP) и передает большие объемы зашифрованных данных. Провайдер блокирует не сам сервер, а распознанный поток VPN-трафика к нему. Скорее всего, под фильтр попал домен (SNI), под который вы маскируетесь. Смените его в настройках.
В: Скорость через VPN сильно упала (до 0.1 - 1 Мбит/с). Как исправить?
О: Ваш магистральный провайдер пытается "зашейпить" (искусственно ограничить) подозрительный трафик.
Решение: Зайдите в настройки клиента Amnezia -> Протоколы -> Xray и просто смените "Сайт для маскировки" (например, с www.microsoft.com на www.apple.com). Сервер сгенерирует новые ключи, вы станете "новым" пользователем для провайдера, и скорость восстановится. В идеале нужно поставить такой сервис, блокировка трафика которого положила бы пол интернета.
В: Безопасно ли использовать встроенный DNS-сервер от Amnezia?
О: Да, это идеальное решение. Поднятый на вашем сервере DNS предотвращает утечки запросов (DNS Leaks). Вы сами контролируете этот узел: он не собирает логи и никуда ничего не передает. Дополнительный плюс - он кэширует ваши запросы, поэтому при повторном обращении к ресурсам ответ возвращается мгновенно, делая серфинг более быстрым и отзывчивым.
В: VPN подключен, но сайты вообще не грузятся. В чем дело?
О: Если сам туннель работает, но страницы выдают ошибку ERR_NAME_NOT_RESOLVED, значит проблема со службой доменных имен.
Решение: В приложении Amnezia перейдите в Настройки -> Соединение и включите опцию "Использовать кастомный DNS". Впишите туда надежные публичные адреса: 1.1.1.1 (от Cloudflare) или 8.8.8.8 (от Google) или другие публичные DNS.
В: Можно ли поделиться своим VPN с семьей или друзьями?
О: Технически - да. Протокол Xray позволяет использовать один QR-код на множестве устройств одновременно, никаких конфликтов IP-адресов не будет.
Но есть нюанс: Чем больше людей с разных провайдеров (МТС, Ростелеком, Мегафон) будут одновременно генерировать тяжелый трафик на ваш единственный IP-адрес в Европе, тем быстрее этот IP улетит в бан Роскомнадзора. Делитесь доступом с умом и только в узком семейном кругу.
В: Мой российский провайдер увидит, какие сайты я посещаю?
О: Нет. Провайдер и системы цензуры будут видеть только то, что вы установили защищенное HTTPS-соединение с сайтом, который вы указали для маскировки (например, с сервером Microsoft). Весь ваш реальный интернет-серфинг, скачанные файлы и DNS-запросы надежно зашифрованы и спрятаны внутри этого туннеля.
В: Можно ли поднять SOCKS5 прокси на этом сервере?
О: Крайне не рекомендуется выставлять его наружу! Сам по себе SOCKS5 не имеет шифрования. Если вы пропишете внешний (публичный) IP вашего сервера в клиенте, ТСПУ моментально увидит открытый трафик и может заблокировать весь IP-адрес сервера целиком. Использовать SOCKS5 безопасно только в том случае, если он настроен для работы исключительно внутри зашифрованного VPN-туннеля (по внутренним локальным IP-адресам вроде 10.0.x.x).
В: Почему периодически обрывается прямое подключение к серверу по SSH?
О: Чаще всего это банальный таймаут - сервер сам разрывает соединение из-за долгого бездействия (если вы ничего не вводите в консоль). Однако, если падает даже активное подключение, это может означать, что провайдер видит сам факт SSH-соединения с зарубежным IP и обрывает его. В тяжелых случаях поможет смена хостинг-провайдера на менее "засвеченного" у систем фильтрации.