VPN для Linux на Reality: sing-box и Xray на Ubuntu и Debian
Настройка VLESS Reality на Linux: установка sing-box и xray-core на Ubuntu и Debian, запуск через systemd, маршрутизация и GUI-клиенты NekoRay и v2rayA.
Linux — система для тех, кто привык всё держать под контролем, и VPN здесь настраивается ровно так же: без «магических» кнопок, зато с полным пониманием, что и куда идёт. В этом руководстве разберём, как поднять VLESS Reality на Ubuntu и Debian через sing-box или xray-core: установка из пакета и бинарником, конфиг из подписки Visavio, запуск как systemd-сервис с автозапуском, системный прокси и TUN-режим, маршрутизация по доменам, GUI-клиенты и проверка через curl. К концу статьи у вас будет стабильный туннель, который переживает перезагрузку и не палится на DPI.
Зачем VPN на Linux
Linux редко ставят «для галочки» — обычно это рабочая машина разработчика, домашний сервер или десктоп энтузиаста. И почти в каждом сценарии сегодня всплывает заблокированный или замедленный ресурс. Разберём три задачи, ради которых на Ubuntu и Debian чаще всего поднимают VPN.
- Разработка. GitHub, Docker Hub, npm-реестры, зарубежные CI и облачные панели периодически недоступны или открываются через раз. Прерванный
git cloneили зависшийdocker pullна середине образа выбивают из рабочего потока сильнее, чем кажется. Стабильный туннель убирает эту лотерею. - Доступ к репозиториям и сервисам. Часть пакетных зеркал, страниц документации и SaaS-панелей фильтрует российские IP. Через VPN вы получаете предсказуемый зарубежный адрес, и
apt updateили установка зависимостей проходит без сюрпризов. - Нейросети. ChatGPT, Claude, Gemini и их API попросту не пускают российские адреса. Reality даёт чистый зарубежный IP и стабильный доступ и к веб-интерфейсу, и к API — что критично, когда ассистент встроен прямо в редактор кода или вызывается из терминала.
Общий знаменатель — надёжность и скорость. На Linux особенно ценят, что всё работает как системный сервис: настроили один раз, и туннель поднимается сам при загрузке, без ручного запуска приложения.
Почему VLESS Reality, а не WireGuard
На Linux WireGuard стоит из коробки и работает отлично — до тех пор, пока речь не заходит про обход блокировок в России. Проблема в том, что у WireGuard узнаваемый сетевой отпечаток: DPI видит характерные пакеты и либо режет скорость, либо роняет соединение. Reality решает это принципиально иначе.
Reality — способ маскировки, при котором соединение внешне неотличимо от обычного визита на легитимный сайт по TLS 1.3. Клиент выполняет настоящее TLS-рукопожатие с реальным доменом-«маской» (тот самый SNI), и системе глубокой инспекции пакетов не за что зацепиться: сертификат подлинный, поведение — как у браузера. Поверх Reality работает протокол VLESS с потоком XTLS-Vision: он снимает лишний слой шифрования там, где данные уже защищены TLS, и за счёт этого отдаёт скорость, близкую к гигабиту. Для Linux-машины это значит минимум нагрузки на процессор и полный канал под задачи. Развёрнутое сравнение — в материале Reality против WireGuard.
Сервер Visavio не требует своего клиента: вы получаете ссылку-подписку (VLESS URL) и импортируете её в любой совместимый инструмент. На Linux это чаще всего sing-box или xray-core — их и разберём.
sing-box или xray-core: что выбрать
Оба клиента отлично работают с VLESS Reality, и подписка Visavio совместима с любым из них. Разница — в архитектуре и удобстве, а не в качестве.
- xray-core — прямой наследник v2ray, эталонная реализация VLESS и XTLS-Vision. Максимально совместим со всеми нюансами Reality, конфиг описывается в JSON с привычной структурой
inbounds/outbounds/routing. Отличный выбор, когда нужен один стабильный туннель и предсказуемость. - sing-box — более новый универсальный движок «всё в одном». Один бинарь умеет и клиент, и сервер, поддерживает VLESS, Reality, Hysteria2, TUIC, имеет встроенный DNS-резолвер и продвинутый движок правил (rule-set). Конфиг компактнее, а TUN-режим и маршрутизация по доменам описываются изящнее. Немного требовательнее к памяти.
Практический совет: нужен один туннель и максимальная совместимость — берите xray-core. Планируете сложную маршрутизацию по спискам стран и доменов, гибкий DNS и системный TUN — sing-box удобнее. Ниже покажем оба пути, а на обзорной странице VPN для Linux собран краткий сравнительный расклад.
Установка sing-box на Ubuntu и Debian
У sing-box есть официальный репозиторий с deb-пакетами — это самый чистый способ, потому что обновления прилетают через apt, а systemd-юнит ставится автоматически. Порядок такой:
- обновите индексы и поставьте утилиты:
sudo apt update, затемsudo apt install -y curl ca-certificates; - подключите официальный репозиторий проекта по инструкции с их сайта (скрипт добавляет GPG-ключ и список источников в
/etc/apt/sources.list.d/); - установите пакет:
sudo apt install sing-box; - проверьте версию:
sing-box version.
Установка бинарником (без репозитория)
Если возиться с репозиторием не хочется или нужна конкретная версия, скачайте статический бинарь под свою архитектуру со страницы релизов проекта. Для amd64 распакуйте архив и положите файл в систему:
- узнайте архитектуру:
uname -m(x86_64— это amd64,aarch64— arm64); - скопируйте бинарь:
sudo install -m 755 sing-box /usr/local/bin/sing-box; - создайте каталог конфига:
sudo mkdir -p /etc/sing-box; - проверьте:
sing-box version.
Установка xray-core на Ubuntu и Debian
Для xray-core в репозиториях Ubuntu и Debian готового пакета обычно нет, зато есть официальный установочный скрипт, который сам скачивает бинарь, кладёт его в /usr/local/bin/xray, создаёт каталог /usr/local/etc/xray/ и ставит systemd-юнит. Команда стандартная: bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install.
К любым скриптам вида «curl в bash» относитесь осознанно: скачивайте только с официального репозитория проекта и по HTTPS. Если предпочитаете полный контроль — возьмите архив релиза вручную, распакуйте и положите бинарь так же, как sing-box: sudo install -m 755 xray /usr/local/bin/xray, а конфиг храните в /usr/local/etc/xray/config.json. Проверка версии — xray version.
Разбор подписки Visavio
После оплаты вы получаете ссылку-подписку — строку вида vless://uuid@server:443?security=reality&sni=...&pbk=...&sid=...&fp=chrome&flow=xtls-rprx-vision. Из неё нужно вытащить параметры и перенести в конфиг клиента. Что означает каждое поле:
- UUID — ваш уникальный идентификатор (часть до символа @);
- server и port — адрес и порт узла (обычно 443);
- sni — имя домена-«маски», под TLS-соединение с которым маскируется трафик;
- pbk (public key) — публичный ключ Reality;
- sid (short id) — короткий идентификатор Reality;
- fp (fingerprint) — отпечаток TLS, например
chrome; - flow — режим XTLS, для Reality это
xtls-rprx-vision.
Не хотите разбирать ссылку вручную — напишите в поддержку: там пришлют готовый JSON именно под sing-box или xray для Linux. Подробный разбор всех полей и примеры — на странице про конфиг VLESS.
Конфиг sing-box с VLESS Reality
Основной файл — /etc/sing-box/config.json. Минимальный рабочий конфиг состоит из трёх блоков: inbounds (локальный вход — например, mixed-прокси на порту 2080 или TUN-интерфейс), outbounds (сам туннель до сервера Visavio) и route (правила маршрутизации). Ключевой блок outbound описывается так: тип vless, ваши server и server_port, uuid, поле flow со значением xtls-rprx-vision и вложенный объект tls с enabled: true, реальным server_name (это ваш SNI), секцией reality с public_key и short_id, а также блоком utls с fingerprint chrome.
Для десктопа проще всего inbound типа mixed на 127.0.0.1:2080 — он отдаёт и SOCKS, и HTTP-прокси одновременно. Для сквозного туннеля на всю систему используйте inbound типа tun с включённым auto_route (подробнее — в разделе про TUN ниже). После правки проверьте синтаксис командой sing-box check -c /etc/sing-box/config.json.
Конфиг xray-core с VLESS Reality
Файл xray — /usr/local/etc/xray/config.json. Структура классическая: массив inbounds и массив outbounds. Для доступа с приложений поднимите inbound с протоколом socks (или http) на 127.0.0.1 и порту, например, 10808. Главный outbound — протокол vless, внутри settings.vnext укажите address, port, id (это UUID) и flow: "xtls-rprx-vision".
В блоке streamSettings задайте network: "tcp", security: "reality" и объект realitySettings с полями serverName (SNI), publicKey (pbk), shortId (sid) и fingerprint: "chrome". Проверить конфиг перед запуском можно командой xray run -test -c /usr/local/etc/xray/config.json. Если не хотите собирать JSON руками, попросите готовый в поддержке — его достаточно положить в нужный путь.
Запуск как systemd-сервис с автозапуском
Главное преимущество Linux — туннель живёт как системная служба: стартует при загрузке, перезапускается при сбое и логируется через journald. Если вы ставили sing-box из репозитория или xray официальным скриптом, юнит уже создан, и остаётся только включить его.
Для sing-box команды такие: запуск — sudo systemctl start sing-box, автозапуск — sudo systemctl enable sing-box, статус — systemctl status sing-box, логи — journalctl -u sing-box -f. Для xray-core всё аналогично, только имя юнита — xray: sudo systemctl enable --now xray сразу и включит автозапуск, и стартует службу.
Свой юнит для бинарной установки
Если вы ставили бинарь вручную, systemd-юнит нужно создать самому. Пример для sing-box: создайте файл /etc/systemd/system/sing-box.service с секцией [Unit] (описание и зависимость After=network.target), секцией [Service] с командой ExecStart=/usr/local/bin/sing-box run -c /etc/sing-box/config.json, параметрами Restart=on-failure и User=root (TUN-режиму нужны права), и секцией [Install] с WantedBy=multi-user.target. После создания файла выполните sudo systemctl daemon-reload, затем sudo systemctl enable --now sing-box. Для xray путь в ExecStart меняется на /usr/local/bin/xray run -c /usr/local/etc/xray/config.json.
Системный прокси или TUN-режим
Есть два принципиально разных способа завернуть трафик в туннель, и выбор зависит от того, нужен ли VPN всей системе или только отдельным приложениям.
Системный прокси
Если клиент поднимает локальный SOCKS/HTTP-прокси (inbound типа mixed или socks), достаточно указать этот адрес приложениям. В графическом окружении GNOME это делается в Настройки → Сеть → Прокси: режим «Вручную», хост 127.0.0.1, порт вашего inbound. Для терминала экспортируйте переменные: export https_proxy=http://127.0.0.1:2080 и export all_proxy=socks5://127.0.0.1:2080. Плюс подхода — гранулярность: под прокси идёт только то, что вы указали. Минус — не все программы уважают системный прокси.
TUN-режим (весь трафик)
TUN создаёт виртуальный сетевой интерфейс, и клиент перехватывает весь системный трафик прозрачно — приложениям ничего настраивать не нужно. В sing-box это inbound типа tun с auto_route: true и strict_route: true; движок сам добавит маршруты и правила. Такой режим требует прав root (или capability CAP_NET_ADMIN) и загруженного модуля ядра tun — на Ubuntu и Debian он доступен по умолчанию. Это самый удобный вариант для «поставил и забыл»: после systemctl enable вся машина ходит через VPN с первой секунды после загрузки.
Маршрутизация по доменам: РФ напрямую, остальное через VPN
Гонять весь трафик через туннель обычно не нужно и даже вредно: российские банки, госуслуги и сайты с отечественным хостингом лучше открывать с локальным IP — быстрее и без капчи. Умная маршрутизация решает это в блоке route (sing-box) или routing (xray).
Логика простая: два outbound — один vless (туннель), второй direct (напрямую). В правилах отправляете трафик с geoip:ru и нужными российскими доменами на direct, а всё остальное — на туннель. В sing-box для этого удобно подключить внешние rule-set со списками стран и доменов, xray использует встроенные файлы geoip.dat и geosite.dat. При желании можно построить и обратную схему: напрямую идёт всё, а через VPN — только заблокированные ресурсы из явного списка. Такой режим бережёт скорость и оставляет российские сервисы полностью рабочими.
GUI-клиенты для Linux
Не всем комфортно жить в JSON и systemd — под Linux есть удобные графические клиенты, и подписка Visavio работает с каждым.
| Клиент | Движок | Особенности |
|---|---|---|
| NekoRay | sing-box / xray | Импорт подписки одной ссылкой, наглядные профили, TUN-режим, тест задержки |
| v2rayA | xray-core | Веб-интерфейс в браузере, ставится как сервис, удобно для домашнего сервера без GUI |
| Hiddify | sing-box | Кроссплатформенный, простой импорт подписки, авто-маршрутизация из коробки |
NekoRay — пожалуй, самый популярный десктопный клиент: скачиваете AppImage, вставляете VLESS-ссылку через Program → Add profile from clipboard, включаете TUN-режим — и готово. Пошаговый разбор именно под этот клиент есть на странице VPN для NekoRay. v2rayA хорош для сервера без рабочего стола: он поднимает веб-панель, которую открываете в браузере с любого устройства в сети. Проверьте только, что при установке через GUI флаг flow распознался как xtls-rprx-vision, а fingerprint выставлен в chrome — иногда их приходится дописать вручную.
Проверка через curl
После запуска убедитесь, что трафик реально идёт через туннель и наружу виден зарубежный IP. Самый быстрый способ — curl. Если вы используете локальный прокси, спросите адрес через него: curl --socks5 127.0.0.1:2080 https://api.ipify.org (или -x http://127.0.0.1:2080 для HTTP-прокси). В TUN-режиме прокси указывать не нужно, весь трафик уже завёрнут: просто curl https://api.ipify.org.
В ответе должен быть IP вашей локации Visavio, а не домашний. Сравните с прямым запросом без туннеля — адреса должны отличаться. Полезно также проверить, что не течёт DNS и что домены резолвятся: curl -v https://www.google.com покажет, через какой маршрут и с каким SNI идёт соединение. Если IP сменился — туннель работает.
Типичные проблемы: права и порты
Большинство ошибок на Linux сводятся к двум вещам — правам доступа и занятым портам. Разберём частые случаи.
- TUN не поднимается, «operation not permitted». Демону не хватает прав. Запускайте службу от root или выдайте бинарю capability:
sudo setcap cap_net_admin+ep /usr/local/bin/sing-box. Проверьте, что модульtunзагружен:lsmod | grep tun. - «address already in use». Порт inbound занят другим процессом. Найдите его
sudo ss -tulpn | grep 2080и либо остановите конкурента, либо смените порт в конфиге. - Служба падает сразу после старта. Почти всегда это ошибка в JSON. Смотрите причину в
journalctl -u sing-box -eи валидируйте конфиг командойsing-box check(илиxray run -test) перед запуском. - Соединение есть, но сайты не грузятся. Чаще всего не совпал
flow, неверныйpublic_key/short_idили SNI. Сверьте поля с подпиской буква в букву — Reality не прощает опечаток в ключах. - Файрвол режет трафик. Если включён
ufw, убедитесь, что он не блокирует исходящие на порт 443 и трафик с TUN-интерфейса.
Частые вопросы
Что выбрать новичку — sing-box или xray?
Если хочется меньше возни, берите sing-box из репозитория: он ставится через apt, сам приносит systemd-юнит и удобно работает в TUN-режиме на всю систему. xray-core стоит предпочесть, когда нужна максимальная совместимость с нюансами Reality и привычная структура конфига. Оба совместимы с Visavio.
Будет ли работать российский банк-клиент?
Да, если настроить маршрутизацию: трафик с geoip:ru идёт напрямую с вашим домашним IP, а через туннель уходит только заблокированное. Это стандартная схема, описанная выше.
Можно получить готовый конфиг?
Да. Поддержка Visavio присылает готовые JSON-конфиги под sing-box и xray, включая маршрутизацию РФ-трафика. Достаточно назвать дистрибутив и то, что нужно — системный прокси или TUN.
Работает ли на сервере без графики?
Да, это даже основной сценарий на Linux. Клиент живёт как systemd-сервис без всякого GUI, а если нужна панель управления — поставьте v2rayA с веб-интерфейсом.
Есть ли пробный период?
Есть бесплатный доступ на 24 часа — можно проверить скорость и настройку на своей машине до оплаты. Активируется через сайт или Telegram-бот @vpnvisaviobot. Тарифы начинаются от 167 ₽ в месяц на годовом плане, оплата картой МИР или через СБП.
Вывод
Linux даёт то, за что VPN на нём и любят: полный контроль и работу как системная служба. Связка VLESS Reality от Visavio маскируется под обычный TLS 1.3, обходит DPI и замедления, а sing-box или xray-core с автозапуском через systemd поднимают туннель сами при загрузке. Умная маршрутизация оставляет российские сервисы на прямом маршруте и высокой скорости, а TUN-режим закрывает всю систему одним движением. Настроили один раз — и машина стабильно ходит в интернет без ручного запуска.
Хотите попробовать на своём дистрибутиве — оформите подписку с бесплатным пробным периодом и получите готовый конфиг под Linux. Полезные материалы рядом: VPN для Linux, VPN для NekoRay, разбор конфига VLESS и Reality против WireGuard.