💡 Полезные Советы
Как установить Docker на Raspberry Pi 5: Полное пошаговое руководство
Raspberry Pi 5 - это невероятно мощный мини-компьютер, который идеально подходит для создания домашнего сервера, медиацентра или системы умного дома. Но чтобы выжать из него максимум и не захламлять систему десятками зависимостей, лучше всего использовать контейнеризацию.
Специально для читателей riopass.ru мы подготовили простую и быструю инструкцию по установке Docker на Raspberry Pi 5.
Подготовка системы
Перед установкой любого серьезного программного обеспечения правило номер один - обновить систему. Это поможет избежать конфликтов версий и гарантирует, что вы используете самые свежие пакеты безопасности.
Откройте терминал на вашей Raspberry Pi (или подключитесь к ней по SSH) и введите следующую команду:
sudo apt update && sudo apt upgrade -yДождитесь завершения процесса. Если обновлений было много, не лишним будет перезагрузить устройство командой sudo reboot
Установка Docker
Самый простой и официально рекомендуемый способ установки Docker на Raspberry Pi OS (которая базируется на Debian) - использование автоматического скрипта установки.
1. Загрузка установочного скрипта
Скачайте официальный скрипт с сайта Docker с помощью утилиты curl:
curl -fsSL https://get.docker.com -o get-docker.sh2. Запуск скрипта
Теперь запустите скачанный скрипт с правами суперпользователя:
sudo sh get-docker.shПроцесс установки займет пару минут. Скрипт самостоятельно определит архитектуру вашего процессора (ARM64 для Raspberry Pi 5) и скачает нужные версии пакетов.

Настройка прав доступа (чтобы работать без sudo)
По умолчанию для выполнения команд Docker требуются права root. Постоянно писать sudo docker - это неудобно и не совсем безопасно. Чтобы этого избежать, нужно добавить вашего текущего пользователя (обычно это пользователь pi или тот, которого вы создали при установке системы) в группу docker
Выполните команду:
sudo usermod -aG docker $USERЧтобы изменения вступили в силу без перезагрузки всей системы, примените новую группу:
newgrp docker(Примечание: если после этого команды Docker все равно требуют sudo, просто перезагрузите Raspberry Pi командой sudo reboot).
Проверка установки
Давайте убедимся, что всё прошло успешно. Введите в терминал команду для проверки версии:
docker --versionВы должны увидеть актуальную версию Docker, например: Docker version 29.4.0, build 9d7ad9f.
А теперь - традиционный тест! Запустим тестовый контейнер hello-world:
docker run hello-worldЕсли установка прошла успешно, Docker скачает минималистичный образ и выведет на экран приветственное сообщение: "Hello from Docker!".
Настройка автозапуска
Чтобы контейнеры автоматически поднимались после сбоя питания или перезагрузки Raspberry Pi, нужно добавить службу Docker в автозагрузку:
sudo systemctl enable docker.service
sudo systemctl enable containerd.serviceОставайтесь с riopass.ru, впереди еще много полезных шпаргалок по настройке вашего домашнего сервера!
FAQ: Часто задаваемые вопросы
В: Почему Docker лучше обычной установки программ через apt install?
О: Docker изолирует приложения. Вы можете запустить пять разных версий Python на одной Raspberry Pi 5, и они не будут конфликтовать. Кроме того, удаление программы в Docker - это просто удаление контейнера, после которого в основной системе не остается никакого "мусора".
В: Сильно ли Docker нагружает Raspberry Pi 5?
О: Raspberry Pi 5 обладает мощным процессором и быстрой оперативной памятью, поэтому накладные расходы на работу Docker практически незаметны (обычно это 1-2% ресурсов). Это гораздо эффективнее, чем использование виртуальных машин.
В: Что делать, если Docker не скачивает образы (ошибки "Timeout" или "Connection refused")?
О: В некоторых регионах доступ к официальному Docker Hub может быть ограничен или работать нестабильно. В таких случаях можно использовать зеркала (прокси-репозитории).
Одним из надежных вариантов является прокси от Timeweb. Чтобы им воспользоваться, нужно отредактировать (или создать) файл конфигурации:
sudo nano /etc/docker/daemon.jsonДобавьте туда следующий адрес:
{
"registry-mirrors": ["https://dockerhub.timeweb.cloud/"]
}После этого перезапустите службу: sudo systemctl restart docker. Теперь образы будут скачиваться через это зеркало.
В: Нужно ли использовать 64-битную ОС для Docker на Raspberry Pi 5?
О: Да, крайне желательно. Raspberry Pi 5 - это 64-битное устройство, и Docker работает эффективнее именно на 64-битных версиях Raspberry Pi OS или Ubuntu. Это также дает доступ к большему количеству современных образов.
В: Как обновить Docker до последней версии?
О: Поскольку мы устанавливали его через официальный репозиторий, Docker будет обновляться автоматически при выполнении стандартной команды обновления системы: sudo apt update && sudo apt upgrade.
Глоссарий
- Docker (Докер) - специальная платформа, которая позволяет упаковать любую программу со всеми ее настройками и файлами в единый стандартизированный блок. Благодаря этому программа будет одинаково хорошо работать на любом устройстве, будь то ваш ноутбук или Raspberry Pi.
- Docker Hub - крупнейшее в мире публичное хранилище (реестр) образов Docker. Это своего рода "магазин приложений", откуда скачиваются официальные образы Python, Nginx, PostgreSQL и тысяч других программ.
- Контейнеризация - сама технология изоляции приложений друг от друга и от основной операционной системы. Контейнеры потребляют гораздо меньше ресурсов, чем традиционные виртуальные машины.
- Образ (Image) - это готовый неизменяемый шаблон или "чертеж" программы. Скачивая образ (например, hello-world), вы получаете инструкцию для системы, как именно запускать приложение.
- Контейнер (Container) - это "оживший" образ. Запущенная и работающая в изолированной среде программа. Из одного образа можно запустить несколько одинаковых контейнеров.
- Репозиторий (Repository) - коллекция образов Docker с одинаковым именем, но разными тегами (версиями). Например, в репозитории python могут быть теги
3.10, 3.12-slimи так далее. - Терминал (Командная строка) - текстовый интерфейс для общения с операционной системой. Вместо того чтобы кликать мышкой по иконкам, вы вводите текстовые команды.
- SSH (Secure Shell) - защищенный протокол, который позволяет вам подключиться к терминалу вашей Raspberry Pi удаленно, например, с основного компьютера или ноутбука.
- Root / Sudo - Root это главный администратор (суперпользователь) в системах Linux, которому разрешено делать с системой абсолютно всё. Команда sudo (Superuser DO) позволяет обычному пользователю временно выполнить конкретную команду с правами этого самого главного администратора.
- Скрипт - текстовый файл, содержащий последовательность команд, которые компьютер должен выполнить автоматически (например, скрипт установки Docker скачивает, распаковывает и настраивает все нужные файлы за вас).
Визуализация сетевых задержек: руководство по 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 и обрывает его. В тяжелых случаях поможет смена хостинг-провайдера на менее "засвеченного" у систем фильтрации.