Русский · English · Большая статья · Мультисервер
Профессиональный Bash-менеджер для развёртывания и сопровождения приватного прокси-сервиса на Ubuntu VPS.
Быстрый старт · Возможности · Команды · Telegram-бот · Подписки · Безопасность · Диагностика · Статья · Мультисервер · FAQ · Changelog
Yurich Panel — это единый установочный и административный скрипт для VPS. Он автоматизирует подготовку сервера, сборку Caddy 2 с forwardproxy@naive, выпуск TLS-сертификата, управление пользователями, настройку firewall, диагностику, мониторинг и Telegram-управление.
Проект рассчитан на администраторов, которым нужен воспроизводимый способ развернуть приватный сервис и дальше обслуживать его без ручного редактирования десятков системных файлов.
Основной стек:
- Caddy 2 с
klzgrad/forwardproxy@naive; - Yurich Proxy (Naive-compatible transport);
- systemd;
- UFW;
- Fail2Ban;
- Telegram Bot API;
- optional: Xray-core, Hysteria 2, Cloudflare WARP proxy mode, unbound DNS.
Версия 5.6.34 добавляет базовое мультисерверное управление: главный сервер может хранить список node-серверов, проверять их по SSH, отправлять на них текущий скрипт, синхронизировать пользователей и добавлять дополнительные node-ссылки в страницы подписки.
| Направление | Что добавлено |
|---|---|
| Multi-server nodes | Новый пункт меню 29) [NODES] Multi-server management |
| Node registry | Root-only реестр /etc/naiveproxy/nodes.conf с name/host/ssh/domain/role/weight/enabled |
| SSH status | Проверка node по SSH: hostname, uptime, Caddy, Xray, Hysteria, Unbound и открытые порты |
| Node deploy | Отправка текущего yurich-panel.sh / naiveproxy.sh на выбранную node |
| User sync | Синхронизация users.conf, users.d, xray-users.conf на одну node или на все |
| Safe remote apply | На node выполняется backup, safe-apply, hysteria-sync, xray-rebuild |
| Multi-node subscriptions | links.txt получает дополнительные naive+https ссылки для включённых node-доменов |
| Multi-server guide | Добавлена подробная инструкция MULTISERVER_GUIDE_RU.md |
| CLI commands | Добавлены nodes, nodes-add, nodes-test, nodes-deploy, nodes-sync, nodes-subscriptions |
| Yurich Connect | Кнопки скачивания Android и Windows клиента на странице подписки |
| Contacts | Telegram, VK и email поддержки на странице подписки |
| Subscription UX | Ссылки на приложения добавлены в быстрый импорт и карточки ОС |
| REALITY target presets | Список RU/Global кандидатов для REALITY target |
| Live TLS check | Скрипт проверяет DNS/TLS/SNI выбранного target с сервера |
| Xray menu | Новый пункт REALITY target presets / test и CLI-команда xray-target |
| XHTTP standalone | Новый VLESS XHTTP TLS inbound на 8448/tcp |
| Subscription page | Личная страница теперь показывает XHTTP standalone отдельно от fallback-only ссылок |
| UFW / Diagnose | Скрипт автоматически открывает и проверяет 8448/tcp для XHTTP |
| Installer hotfix | Исправлен скрытый prompt Срок пользователя 1-12 месяцев после генерации пароля |
| Subscription term | Ввод срока теперь идёт через /dev/tty с fallback на stderr/stdin |
| Brand refresh | Единый публичный бренд проекта: Yurich Panel |
| Yurich Proxy | Публичное имя для Naive-compatible transport без поломки naive+https:// |
| Yurich URI | Добавлен брендовый alias yurich://proxy?... в CLI, Telegram и страницу подписки |
| Script rename | Новый основной файл: yurich-panel.sh; старый naiveproxy.sh сохранён как совместимый alias |
| Compatibility | Технические имена протоколов сохранены; self-update остаётся совместимым со старыми релизами |
| Terminal UI | SSH-панель больше не использует emoji в меню и диагностике |
| Menu icons | 🌐/🔍/🛡️/... заменены на [DOM], [DIAG], [DNS], [WARP], [XRAY] |
| Diagnostics | Итоги диагностики теперь выводятся как [OK], [WARN], [FAIL] |
| WARP → Caddy | В proxy mode Caddy получает upstream socks5://127.0.0.1:40000 |
| WARP → Hysteria | Hysteria 2 получает outbounds с первым SOCKS5 outbound на WARP proxy |
| WARP → Xray | Xray использует SOCKS outbound и явное routing-правило через warp-proxy |
| SSH safety | Новая команда warp-ssh-allow для сохранения домашних/мобильных SSH CIDR |
| Xray keys | Парсер REALITY ключей стал устойчивее к разным форматам xray x25519 |
| Fail2Ban | Отдельная настройка без смены SSH-порта: SSH + Caddy auth jail |
| Caddy auth jail | Новый yurich-caddy-auth jail банит частые 401/407 в Caddy JSON-логах |
| UFW 80/tcp | ACME-порт теперь открывается через реальный ufw limit, а не обычный allow |
| Health UFW | health проверяет SSH, 80/443, Hysteria, Xray и DNS-порты по включённым модулям |
| SSH panel language | Новая команда language и пункт меню 28 для выбора Русский / English |
| Config persistence | Выбранный язык сохраняется в /etc/naiveproxy/naive.conf |
| Self-update | Проверка yurich-panel.sh.sha256 перед установкой обновления; строгий режим через NAIVEPROXY_REQUIRE_SHA=1 |
| Pin versions | По умолчанию закреплены xcaddy v0.4.6, forwardproxy d62c80d, Xray v26.3.27, Hysteria app/v2.9.2; можно переопределить через NAIVEPROXY_* |
| Health-check | Команда health проверяет Caddy, DNS, Telegram bot service, WARP, Xray и Hysteria одним отчётом |
| Safe apply | Команда safe-apply валидирует включённые конфиги и откатывает Caddyfile при ошибке |
| Backups | Команда backup создаёт encrypted archive /etc/naiveproxy и связанных конфигов через OpenSSL |
| Export/import | Команды export и import переносят пользователей, токены подписок и метаданные сроков |
| Срок пользователя | При создании пользователя можно выбрать 1-12 месяцев; срок отображается в конфиге и на странице подписки |
| Android subscriptions | Имена URI в подписке получают метку срока, чтобы профиль проще отличался в клиентах |
| Bridge builder | Меню 27 сохраняет bridge-профиль “мобилка → первый VPS → второй VPS” и готовит основу для Xray/sing-box chaining |
| Production menu | Новое меню 27: health-check, safe apply, encrypted backup, export/import и bridge builder |
| DNS safety | Запрещена любая маска /0 для VPN DNS CIDR, чтобы не получить open resolver |
| DNS (Unbound) CLI | yurich-dns-status и uninstall читают env только при владельце root |
| Watchdog Telegram | Исправлена отправка monitor-уведомлений через --data-urlencode |
| Bot install | bot-install синхронизирует текущий валидный скрипт в /usr/local/bin/yurich-panel.sh |
| Telegram polling | Исправлен getUpdates: allowed_updates отправляется как JSON-массив, поэтому /menu снова обрабатывается |
| Bot service | После настройки Telegram можно сразу установить naiveproxy-bot.service по Enter |
| Telegram Menu | setMyCommands и setChatMenuButton, чтобы кнопка Menu показывала все команды |
| Bot CLI | Новая команда bot-menu для ручного обновления Telegram-меню |
| DNS (Unbound) | Отдельный production-ready проект yurich-dns/ с install/uninstall/examples/scripts |
| Recursive DNS | Unbound работает как собственный recursive resolver без Cloudflare/Google upstream |
| DNSSEC | Trust anchor не дублируется в конфиге, чтобы не ловить trust anchor presented twice |
| DNS для VPN | :53 открывается только для заданных VPN CIDR, без open resolver |
| Bind safety | Unbound слушает 127.0.0.1 и указанный VPN gateway IP, но не 0.0.0.0 |
| Auto gateway | Если 10.0.0.1 отсутствует, скрипт может создать 10.0.0.1/32 на lo через systemd |
| Adblock removed | Blocklists/whitelist удалены из основного скрипта |
| Hysteria per-user | При добавлении/удалении/смене пароля пользователя Hysteria 2 пересобирает userpass auth |
| Hysteria порт | В меню можно выбрать порт по умолчанию 8443 или указать UDP порт вручную |
| Подписки | Личная страница пользователя теперь включает Yurich Proxy + Hysteria 2 + Xray, если модули установлены |
| WARP SSH-safe | Full tunnel добавляет split-tunnel exclude для текущего SSH IP и включает аварийный rollback |
| WARP full tunnel | Меню 21 может включить warp / warp+doh, чтобы весь исходящий трафик VPS шёл через WARP |
| WARP proxy mode | Старый 127.0.0.1:40000 сохранён для приложений и Xray outbound |
| Протоколы WARP | Выбор auto, MASQUE, WireGuard; auto пробует MASQUE, затем WireGuard |
| Диагностика | Отдельная проверка full tunnel без -x и local proxy через HTTP/SOCKS5 |
| Xray меню 23 | Новый пункт Создать Xray пользователя + подписка |
| Единая выдача | При добавлении Yurich Proxy-пользователя можно сразу создать Xray/VLESS профиль с тем же логином |
| Подписка | Персональная /s/<token>/ страница собирает Yurich Proxy + VLESS/Trojan/REALITY ссылки вместе |
| CLI | Новая команда xray-add-user USER |
| Telegram меню | Постоянная русская reply-клавиатура после /start, /help или /menu |
| Быстрые кнопки | Статус, пользователи, QR, подписка, Xray, Hysteria, WARP, диагностика, логи, restart и автофикс |
| Совместимость | Все старые slash-команды продолжают работать без изменений |
| Безопасность | Кнопки обрабатываются только для TG_CHAT_ID и дополнительных администраторов |
| Создание пользователя | После добавления сразу выводится клиентский URI, JSON и QR |
| Страница подписки | /s/<token>/ создаётся автоматически для нового Yurich Proxy/Xray пользователя |
| Telegram | /adduser отправляет URI, QR-картинку и ссылку на страницу подписки |
| Удаление пользователя | При удалении чистится token-файл и web-папка страницы подписки |
| Hysteria 2 | Проверка и перевыпуск пустого/короткого obfs.salamander.password |
| Xray mKCP | Удалён устаревший headerType=wechat-video; mKCP использует современный config без header/seed |
| Hysteria 2 | Безопасный генератор паролей без сбоев pipefail/SIGPIPE |
| WARP proxy | Проверка HTTP proxy и SOCKS5 fallback с обязательным warp=on |
| Xray + WARP | При включённом WARP Xray outbound направляется через 127.0.0.1:40000 |
| Xray REALITY | Исправлен парсинг xray x25519, где публичный ключ может выводиться как Password |
| Страницы подписки | Персональный secret URL /s/<token>/ для каждого пользователя |
| Raw import | links.txt для импорта конфигураций в совместимые клиенты |
| Ротация токенов | subscription-reset USER перевыпускает URL и удаляет старую страницу |
| Личная страница | Отдельная приватная страница /p/<token>/ |
| Telegram v2 | /sub, /subreset, /devices, /lockuser, /unlockuser, /xray, /xraystatus, /diagfix, /privatepage |
| Privacy headers | X-Robots-Tag и Cache-Control: no-store для /s/* и /p/* |
| Diagnose fix | Автофикс восстанавливает privacy-файлы и типовые настройки |
- установка зависимостей;
- проверка DNS домена;
- установка или обновление Go;
- сборка Caddy с нужным модулем;
- создание Caddyfile;
- выпуск и продление TLS через Caddy;
- создание systemd service;
- настройка UFW;
- включение BBR;
- генерация клиентских конфигов и QR-кодов.
- добавление и удаление пользователей;
- генерация безопасного пароля;
- вывод URI и JSON-конфига;
- QR-код для мобильного клиента;
- защита от удаления последнего активного пользователя;
- валидация логинов и паролей.
- отдельная страница на каждого пользователя;
- secret URL вместо пути по логину;
links.txtдля импорта;- Yurich Proxy alias
yurich://proxy?...; - совместимый URI
naive+https://...; - naive-client JSON;
- Xray/VLESS/Trojan ссылки, если Xray включён;
- подсказки для Windows, Android, iOS/macOS и Linux;
- ротация токена при утечке ссылки.
- 25+ команд;
- русское кнопочное меню;
- мультиадмины;
- управление пользователями;
- QR-коды;
- страницы подписки;
- отчёт по устройствам;
- lock/unlock пользователя;
- Xray config/status;
- диагностика и автофикс;
- перезапуск и обновление сервисов.
- Xray Modern transports: VLESS, Trojan, REALITY, mKCP, WebSocket, gRPC, HTTPUpgrade, XHTTP;
- Hysteria 2 на отдельном UDP-порту;
- Cloudflare WARP в локальном proxy mode;
- DNS на Unbound для приватного DNS внутри VPN;
- SSH hardening;
- Fail2Ban;
- мониторинг ресурсов и логов.
bash <(curl -fsSL https://raw.githubusercontent.com/ivan-yurich/naiveproxy/main/yurich-panel.sh)Во время установки скрипт спросит:
- домен;
- email для TLS;
- логин первого пользователя;
- пароль или генерацию случайного пароля;
- нужно ли обновить систему;
- включать ли SSH hardening;
- включать ли BBR;
- настраивать ли Telegram-бот.
После установки будет показан клиентский URI, JSON-конфиг и QR-код.
| Параметр | Минимум | Рекомендуется |
|---|---|---|
| ОС | Ubuntu 20.04 | Ubuntu 22.04 / 24.04 |
| Права | root | root |
| RAM | 512 MB | 1 GB+ |
| Диск | 1 GB | 5 GB+ |
| CPU | 1 vCPU | 1+ vCPU |
| Порты | 80/tcp, 443/tcp, 443/udp | плюс отдельный SSH-порт |
| Домен | A-запись на IP сервера | отдельный технический домен |
sudo bash yurich-panel.sh install
sudo bash yurich-panel.sh status
sudo bash yurich-panel.sh config
sudo bash yurich-panel.sh config USER
sudo bash yurich-panel.sh users
sudo bash yurich-panel.sh domains
sudo bash yurich-panel.sh monitor
sudo bash yurich-panel.sh logs
sudo bash yurich-panel.sh restart
sudo bash yurich-panel.sh reload
sudo bash yurich-panel.sh update
sudo bash yurich-panel.sh self-update
sudo bash yurich-panel.sh language
sudo bash yurich-panel.sh removesudo bash yurich-panel.sh health
sudo bash yurich-panel.sh safe-apply
sudo bash yurich-panel.sh backup
sudo bash yurich-panel.sh export
sudo bash yurich-panel.sh import /path/to/naiveproxy-state.tar.gz
sudo bash yurich-panel.sh bridgesudo bash yurich-panel.sh subscription USER
sudo bash yurich-panel.sh subscription-reset USER
sudo bash yurich-panel.sh private-page
sudo bash yurich-panel.sh private-page reset
sudo bash yurich-panel.sh camouflagesudo bash yurich-panel.sh devices
sudo bash yurich-panel.sh devices-scan
sudo bash yurich-panel.sh devices-config
sudo bash yurich-panel.sh devices-disable
sudo bash yurich-panel.sh devices-lock USER
sudo bash yurich-panel.sh devices-unlock USERsudo bash yurich-panel.sh xray
sudo bash yurich-panel.sh xray-install
sudo bash yurich-panel.sh xray-add-user USER 12
sudo bash yurich-panel.sh xray-config USER
sudo bash yurich-panel.sh xray-status
sudo bash yurich-panel.sh xray-logs
sudo bash yurich-panel.sh xray-removesudo bash yurich-panel.sh hysteria
sudo bash yurich-panel.sh hysteria-install
sudo bash yurich-panel.sh hysteria-config
sudo bash yurich-panel.sh hysteria-status
sudo bash yurich-panel.sh hysteria-logs
sudo bash yurich-panel.sh hysteria-port
sudo bash yurich-panel.sh hysteria-removesudo bash yurich-panel.sh warp
sudo bash yurich-panel.sh warp-install
sudo bash yurich-panel.sh warp-proxy
sudo bash yurich-panel.sh warp-full
sudo bash yurich-panel.sh warp-protocol
sudo bash yurich-panel.sh warp-config
sudo bash yurich-panel.sh warp-status
sudo bash yurich-panel.sh warp-test
sudo bash yurich-panel.sh warp-full-test
sudo bash yurich-panel.sh warp-logs
sudo bash yurich-panel.sh warp-disable
sudo bash yurich-panel.sh warp-removeproxy mode слушает 127.0.0.1:40000 и работает только для приложений, где явно указан SOCKS5/HTTP proxy. Для долгих соединений и фоновых сервисов лучше использовать Xray outbound или full tunnel.
full tunnel переводит весь исходящий трафик VPS через WARP. Для осторожного включения используй меню 21 → 2; откат: sudo bash yurich-panel.sh warp-disable.
sudo bash yurich-panel.sh dns
sudo bash yurich-panel.sh dns-install
sudo bash yurich-panel.sh dns-status
sudo bash yurich-panel.sh dns-restart
sudo bash yurich-panel.sh unbound
sudo bash yurich-panel.sh unbound-install
sudo bash yurich-panel.sh unbound-vpn
sudo bash yurich-panel.sh unbound-status
sudo bash yurich-panel.sh yurich-dnsDNS (Unbound) поднимает собственный recursive Unbound resolver для сервера и VPN-клиентов:
- без Google/Cloudflare upstream;
- без рекламных blocklists;
- без
0.0.0.0bind; - без open resolver;
- с UFW allowlist только для VPN CIDR;
- с отдельным standalone-проектом
yurich-dns/.
Для VPN-клиентов DNS открывается только по указанным CIDR. Если gateway IP, например 10.0.0.1, ещё не назначен интерфейсу сервера, скрипт предложит создать безопасный локальный gateway 10.0.0.1/32 на lo. Полный sing-box Android VPN/TUN конфиг на странице подписки автоматически получит DNS (Unbound).
sudo bash yurich-panel.sh diagnose
sudo bash yurich-panel.sh diagnose --fix
sudo bash yurich-panel.sh ssh-hardening
sudo bash yurich-panel.sh ssh-rescue
sudo bash yurich-panel.sh ssh-key
sudo bash yurich-panel.sh sysupdateУстановка бота как systemd service:
sudo bash yurich-panel.sh bot-install
systemctl status naiveproxy-bot --no-pager
sudo bash yurich-panel.sh bot-menuЗапуск в foreground:
sudo bash yurich-panel.sh botКоманды:
| Раздел | Команды |
|---|---|
| Меню | /start, /help, /menu |
| Информация | /status, /stats, /diagnose, /logs, /cert, /xraystatus, /hysteria, /warp |
| Пользователи | /users, /adduser, /deluser, /qr |
| Подписки | /sub, /subreset |
| Лимит устройств | /devices, /lockuser, /unlockuser |
| Xray | /xray, /xrayadduser, /xraystatus |
| Управление | /restart, /update, /selfupdate, /diagfix, /privatepage |
| Администраторы | /admins, /addadmin, /deladmin |
После /start бот показывает постоянные кнопки: статус, пользователи, QR, подписка, Xray, Hysteria, WARP, диагностика, логи, перезапуск Caddy, автофикс и донат.
Кнопка Telegram Menu тоже настраивается автоматически через Bot API. Если меню не появилось сразу, выполни:
sudo bash yurich-panel.sh bot-menu
systemctl restart naiveproxy-botTelegram-доступ ограничивается TG_CHAT_ID и списком дополнительных администраторов.
Создать или показать страницу:
sudo bash yurich-panel.sh subscription USERПример формата:
https://<your-domain.example>/s/<secret-token>/
https://<your-domain.example>/s/<secret-token>/links.txt
Перевыпустить токен:
sudo bash yurich-panel.sh subscription-reset USERСтарый каталог страницы удаляется. Новый URL создаётся автоматически.
Для приватных web-путей скрипт добавляет:
robots.txt;meta robots="noindex,nofollow,noarchive";X-Robots-Tag;Cache-Control: no-store.
Скрипт включает несколько уровней защиты:
- Caddyfile не создаётся без активных пользователей;
- логины и пароли проходят валидацию;
- конфиги и файлы пользователей получают права
600; - директории токенов получают права
700; - перед
sourceконфигурации проверяется владелец файла; - UFW ограничивает входящий трафик;
- Fail2Ban защищает SSH;
- SSH hardening выполняется только после явного подтверждения;
- Xray config проверяется перед запуском;
- Caddyfile валидируется перед reload/restart;
- есть защита от удаления последнего активного пользователя;
- страницы подписки создаются по случайным токенам.
Важно: secret URL страницы подписки не заменяет полноценную авторизацию. Если ссылка утекла, перевыпустите токен командой subscription-reset USER.
sudo bash yurich-panel.sh diagnoseПроверяются:
- Caddy и модуль forwardproxy;
- Caddyfile;
- TLS;
- DNS домена;
- порты;
- ALPN;
- UFW;
- Fail2Ban;
- RAM, диск, CPU;
- журналы Caddy;
- Xray;
- WARP proxy mode;
- лимит устройств;
- версия скрипта.
Автофикс:
sudo bash yurich-panel.sh diagnose --fixОн пытается восстановить права файлов, Caddyfile, UFW-правила, cron лимита устройств, Xray restart и privacy-файлы для /s/ и /p/.
/usr/local/bin/yurich-panel.sh
/usr/local/bin/caddy
/etc/naiveproxy/naive.conf
/etc/naiveproxy/users.conf
/etc/naiveproxy/users.disabled
/etc/naiveproxy/xray-users.conf
/etc/naiveproxy/xray-users.disabled
/etc/naiveproxy/subscriptions/
/etc/caddy/Caddyfile
/etc/systemd/system/caddy.service
/etc/systemd/system/naiveproxy-bot.service
/var/log/caddy/naive.log
/var/www/html/index.html
/var/www/html/s/<token>/
/var/www/html/p/<token>/
Yurich Proxy alias для будущего Yurich-клиента:
yurich://proxy?transport=naive&server=<your-domain.example>&port=443&username=USER&password=PASSWORD
Совместимый URI для текущих клиентов:
naive+https://USER:PASSWORD@<your-domain.example>:443
naive-client JSON:
{
"listen": "socks://127.0.0.1:1080",
"proxy": "https://USER:PASSWORD@<your-domain.example>:443"
}sing-box outbound:
{
"type": "http",
"tag": "naiveproxy-out",
"server": "<your-domain.example>",
"server_port": 443,
"username": "USER",
"password": "PASSWORD",
"tls": {
"enabled": true,
"server_name": "<your-domain.example>"
}
}Обновить Caddy:
sudo bash yurich-panel.sh updateОбновить сам скрипт:
sudo bash yurich-panel.sh self-updateПроверить версию:
sudo bash yurich-panel.sh versionsudo bash yurich-panel.sh removeПеред удалением скрипт запрашивает подтверждение.
Полный обзор проекта, архитектуры, модулей, безопасности и сценариев работы доступен здесь:
Yurich Panel v5.6.34: большой обзор скрипта
Обычный пакет Caddy не содержит нужный forwardproxy@naive модуль. Поэтому скрипт собирает Caddy через xcaddy и подбирает версию, требуемую модулем.
Да. Пользователи хранятся в /etc/naiveproxy/users.conf. После изменения скрипт перегенерирует Caddyfile и делает reload/restart Caddy.
Смените пароль пользователя или удалите пользователя и создайте заново. Для страницы подписки выполните:
sudo bash yurich-panel.sh subscription-reset USERЗапустите:
sudo bash yurich-panel.sh diagnose
sudo bash yurich-panel.sh diagnose --fixПосле этого проверьте:
systemctl status caddy --no-pager
caddy validate --config /etc/caddy/Caddyfile
ss -tulpn | grep ':443'Да. В скрипте есть раздел управления доменами. При включённом Xray fallback hub мультидоменный режим Caddy переводится в локальный fallback-сценарий.
Перед включением SSH hardening убедитесь, что есть доступ через консоль провайдера. Для восстановления используйте:
sudo bash yurich-panel.sh ssh-rescue- Добавлено меню
29) [NODES] Multi-server management; - добавлен реестр серверов
/etc/naiveproxy/nodes.conf; - добавлены команды
nodes,nodes-list,nodes-add,nodes-test,nodes-deploy,nodes-sync,nodes-subscriptions,nodes-remove; - добавлена синхронизация пользователей и metadata на node-серверы с backup перед применением;
- добавлены удалённые helper-команды
hysteria-syncиxray-rebuild; - страницы подписки и
links.txtтеперь могут содержать ссылки на дополнительные включённые node-домены.
- На страницу подписки добавлены ссылки:
- Yurich Connect Android:
https://github.com/ivan-yurich/Yurich-Connect-Android/releases; - Yurich Connect Windows:
https://github.com/ivan-yurich/yurich-connect-windows/releases;
- Yurich Connect Android:
- добавлены контакты проекта: Telegram, VK и
ai@ivan-it.net; - карточки Windows/Android теперь ведут на официальные release-страницы клиента.
- Добавлен список REALITY target пресетов: российские и международные кандидаты;
- выбранный target проверяется через TLS/SNI с сервера перед применением;
- добавлен пункт Xray-меню
REALITY target presets / test; - добавлена CLI-команда
xray-target; - текущий REALITY target теперь виден в Xray-меню.
- Добавлен рабочий VLESS XHTTP TLS standalone на
8448/tcp; - XHTTP больше не зависит от
Xray fallback hubна443; - страницы подписки и
links.txtполучают XHTTP-ссылку автоматически; - UFW, status, diagnose и uninstall знают про порт
8448/tcp; - fallback XHTTP на
443сохранён как дополнительный вариант, если включён fallback hub.
- Исправлено “зависание” установки после строки
Сгенерирован пароль; - prompt срока пользователя теперь выводится напрямую в терминал и не попадает внутрь переменной;
- при ошибке срока сообщение выводится в stderr, а не захватывается command substitution;
- старый
v5.6.8можно продолжить вручную: нажатьEnterна пустом месте, это выберет срок12месяцев.
- SSH-панель переведена на terminal-safe ASCII labels вместо emoji;
- главное меню больше не показывает
�в VNC/serial-консолях без emoji-шрифтов; - диагностика использует
[OK],[WARN],[FAIL]вместо emoji-статусов; - DNS и donate терминальные экраны очищены от emoji;
- WARP proxy mode теперь пересобирает Caddyfile и добавляет
forward_proxy upstream socks5://127.0.0.1:40000; - Hysteria 2 теперь может выходить через WARP local proxy благодаря
outboundsвhysteria.yaml; - Xray WARP outbound переведён с HTTP на SOCKS и получил явное
routingправило; - при смене WARP режима автоматически refresh’ятся Caddy, Xray и Hysteria;
- добавлена SSH allowlist для full-tunnel WARP:
warp-ssh-allow; - full-tunnel WARP теперь спрашивает дополнительные SSH IP/CIDR перед включением;
- парсер REALITY ключей Xray стал устойчивее к форматам
Private key,PrivateKey,Public key,Password; - Fail2Ban вынесен в отдельную настройку без обязательного SSH Hardening;
- обычная установка теперь предлагает включить Fail2Ban для SSH и Caddy/Yurich Proxy auth;
- добавлен jail
yurich-caddy-authпо Caddy JSON-логам со статусами401/407; - добавлена CLI-команда
fail2banи пунктSetup / refresh Fail2Banв Production tools; - UFW для
80/tcpтеперь использует настоящийufw limit, а не повторныйallow; healthтеперь проверяет UFW, SSH/80/443, Hysteria, Xray, DNS 53 и Fail2Ban jail’ы;- DNS-модуль переименован в
Yurich DNS; - standalone-проект переименован в
yurich-dns/; - основные команды DNS теперь
yurich-dns-status,yurich-dns-test,yurich-dns-restart; - конфиг Unbound теперь создаётся как
/etc/unbound/unbound.conf.d/yurich-dns.conf; - старые DNS CLI-алиасы сохранены только для совместимости;
- добавлен публичный бренд
Yurich Proxyдля Naive-compatible transport; - технический
naive+https://оставлен без изменений для совместимости с текущими клиентами; - добавлен фирменный alias
yurich://proxy?...в CLI-выдачу, Telegram/adduser//qrи страницу подписки; links.txtоставлен чистым совместимым импортом без экспериментальногоyurich://;- страница подписки теперь показывает отдельную карточку
Yurich Proxy.
- проект переименован в экосистему
Yurich; - убрана отдельная архитектура подбрендов, оставлен единый публичный бренд
Yurich Panel; - основной скрипт переименован в
yurich-panel.sh; - старый
naiveproxy.shсохранён в репозитории и на сервере как совместимый alias; - self-update теперь скачивает
yurich-panel.shи проверяетyurich-panel.sh.sha256; - интерфейс, Telegram-сообщения, страницы подписки, DNS-модуль и README приведены к единому неймингу
Yurich Panel; - технические названия
NaiveProxy,Xray,Hysteria 2,Caddy,Unboundоставлены там, где они обозначают реальные протоколы и компоненты; - сохранена совместимость self-update со старыми релизами;
- добавлен выбор языка SSH-панели: русский / English;
- добавлена команда
languageи пункт меню28; - выбранный язык сохраняется в
LANG_UIвнутри/etc/naiveproxy/naive.conf; - переведён основной экран SSH-панели: статусы, заголовки и пункты главного меню.
- лицензия проекта переведена на
PolyForm Noncommercial 1.0.0 + Commercial License, чтобы коммерческое использование требовало отдельного разрешения автора.
- добавлен self-update с SHA256-проверкой
yurich-panel.sh.sha256; xcaddy,forwardproxy, Xray и Hysteria получили pinned defaults вместоlatest;- добавлена команда
healthдля проверки Caddy, DNS (Unbound), Telegram bot service, WARP, Xray и Hysteria; - добавлена команда
safe-apply: validate включённых конфигов, reload Caddy и rollback при ошибке; - добавлена команда
backupдля encrypted backup/etc/naiveproxyи связанных системных конфигов; - добавлены команды
export/importдля пользователей, токенов подписок и metadata; - при создании пользователя можно выбрать срок 1-12 месяцев;
- страницы подписки показывают срок пользователя, а URI получают понятные labels с датой;
- добавлено меню 27
Production tools / Bridge; - добавлен bridge builder для профилей “мобилка → первый VPS → второй VPS”.
- запрещена любая VPN DNS подсеть с маской
/0, а не только строка0.0.0.0/0; - standalone
yurich-dnsuninstall/status теперь читают env-файл только при владельцеrootи правах600; - исправлена отправка Telegram watchdog-уведомлений в генерируемом
monitor.sh; bot-installсинхронизирует текущий валидный скрипт в/usr/local/bin/yurich-panel.sh, чтобы systemd-сервис не запускал старую копию.
- исправлен Telegram long polling:
allowed_updatesтеперь передаётся в формате JSON-массива; - при настройке Telegram скрипт предлагает сразу установить и запустить
naiveproxy-bot.service; bot-installпроверяет наличие/usr/local/bin/yurich-panel.shи восстанавливает его перед созданием systemd-сервиса;/start,/help,/menuработают только при запущенномnaiveproxy-bot.service, это теперь явно подсвечивается в настройке.
- добавлена настройка Telegram Bot API
setMyCommands; - добавлена настройка Telegram
Menubutton черезsetChatMenuButton; - добавлена CLI-команда
bot-menuдля ручного обновления списка команд; - бот применяет меню при
bot-installи при запуске сервиса; /start,/help,/menuсохраняют русскую reply-клавиатуру быстрых действий.
- добавлен автоматический локальный DNS gateway
10.0.0.1/32наlo; - добавлен systemd-сервис
yurich-dns-gateway.service, который поднимает gateway до запуска Unbound; - меню
17 → 2больше не падает, если10.0.0.1отсутствует, а предлагает создать gateway автоматически; - полный sing-box Android VPN/TUN конфиг теперь автоматически включает DNS (Unbound) через
tcp://10.0.0.1:53; - персональная страница подписки показывает готовый sing-box TUN конфиг с DNS (Unbound).
- удалена DNS-блокировка рекламы из основного скрипта;
- добавлен безопасный DNS (Unbound) режим на Unbound для VPN-клиентов;
- исправлена ошибка
trust anchor presented twice: основной конфиг больше не дублируетauto-trust-anchor-file; - добавлен standalone-проект
yurich-dns/с install/uninstall/configs/examples/scripts/README; - добавлены команды
yurich-dns-status,yurich-dns-test,yurich-dns-restart; - установка отключает
systemd-resolvedDNSStubListener черезresolved.conf.d/no-stub.confи не меняет/etc/resolv.conf; - добавлен auto gateway
yurich-dns-gateway.serviceдля клиентских VPN/TUN конфигов.
- исправлен запуск Unbound при включении DNS для VPN-клиентов;
- удалён bind на
0.0.0.0:53, который конфликтовал сsystemd-resolved; - VPN DNS теперь слушает конкретные IPv4 адреса интерфейсов сервера;
- статус меню теперь показывает
установлен, не запущен, если пакет есть, но сервис упал; - перед рестартом Unbound выполняется
systemctl reset-failed, чтобы выйти из start-limit после старой ошибки; - уменьшен
so-rcvbuf, чтобы убрать шумное предупреждение Unbound на стандартном ядре Ubuntu.
- добавлен recursive DNS mode для Unbound без Cloudflare/Google upstream;
- добавлен выбор режима: recursive/forward DoT и adblock on/off;
- добавлен DNSSEC trust anchor и DNSSEC test в статусе;
- добавлен режим DNS для VPN-клиентов через безопасные CIDR allowlist;
- Unbound слушает локально
127.0.0.1:53и127.0.0.1:5335; - добавлены команды
unbound-modeиunbound-vpn; - усилена защита от open resolver через
access-controlи UFW rules.
- Unbound DNS оформлен как plugin/module со статусом, диагностикой и CLI-алиасами
unbound-*; - Hysteria 2 переведён на
auth.type: userpassдля текущих пользователей Yurich Proxy; - добавлен выбор порта Hysteria 2: дефолт
8443или ручной UDP порт; - при создании пользователя автоматически создаётся персональный Hysteria 2 профиль и QR;
- страница подписки теперь добавляет Hysteria 2 URI и sing-box outbound;
- при удалении или смене пароля пользователя Hysteria 2 пересобирает userpass auth;
- WARP full tunnel получил SSH-safe режим: exclude route для текущего SSH IP и rollback через
systemd-run.
- добавлен WARP full-tunnel режим для всего исходящего трафика VPS;
- меню 21 разделено на proxy mode и full tunnel;
- добавлены команды
warp-full,warp-proxy,warp-protocol,warp-full-test; - добавлен выбор протокола
auto,MASQUE,WireGuard; - диагностика WARP теперь различает proxy и full-tunnel режимы;
- в описании WARP добавлено предупреждение про ограничения Local Proxy для долгих соединений.
- в меню 23 добавлен пункт создания Xray пользователя без переустановки Xray;
- новая команда
xray-add-user USER; - при создании Naive-пользователя можно сразу добавить Xray/VLESS профиль;
- страница подписки автоматически обновляется и содержит Yurich Proxy + Xray ссылки;
- Telegram
/adduserпри активном Xray создаёт общий профиль и отправляет Xray ссылки; - добавлена Telegram-команда
/xrayadduser USER.
- добавлено русское кнопочное меню Telegram;
- бот теперь принимает текст кнопок, а не только сообщения с
/; - добавлена команда
/menu; - добавлены Telegram-команды
/hysteriaи/warp; - неизвестные команды возвращают меню с кнопками;
- документация обновлена под новый UX бота.
- при добавлении Naive пользователя в меню сразу создаётся страница подписки;
- после создания пользователя автоматически выводятся URI, JSON и QR;
- Telegram
/adduserтеперь отправляет URI, QR-картинку и страницу/s/<token>/; - Telegram
/deluserудаляет пользователя и его страницу подписки; - при удалении пользователя в меню удаляются token-файл и web-папка подписки;
- Xray install теперь добавляет выбранного Xray пользователя в файл пользователей и создаёт страницу подписки.
- добавлена валидация Hysteria 2 password и obfs password перед записью
hysteria.yaml; - пустой или короткий
obfs.salamander.passwordтеперь автоматически перевыпускается; - пароли Hysteria 2 записываются в YAML в кавычках;
- Xray mKCP обновлён под новые версии Xray-core: удалены legacy
header/seed; - клиентские mKCP ссылки теперь используют
type=mkcpбезheaderType.
- исправлена автогенерация паролей Hysteria 2 под
set -euo pipefail; - добавлен единый безопасный генератор случайных паролей;
- усилена WARP-диагностика: HTTP proxy, SOCKS5 fallback, сравнение direct/proxy trace;
- WARP install теперь требует подтверждённый
warp=on; - Xray при включённом WARP получает outbound через локальный WARP HTTP proxy.
- исправлен парсинг REALITY-ключей для новых сборок Xray;
xray x25519теперь понимает выводPublic keyиPassword;- добавлена подсказка для ручной проверки генерации ключей.
- добавлены страницы подписки пользователей;
- добавлен
links.txt; - добавлена ротация токенов;
- добавлена личная фейковая страница;
- расширен Telegram-бот;
- добавлены команды
/sub,/subreset,/devices,/lockuser,/unlockuser,/xray,/xraystatus,/diagfix,/privatepage; - добавлены privacy headers для
/s/*и/p/*; diagnose --fixвосстанавливает privacy-файлы.
- лимит устройств учитывает Caddy/Naive и Xray access logs;
lock-userотключает пользователя в Naive и Xray;devices-unlockвозвращает пользователя в обеих подсистемах;- добавлен
diagnose --fix; - автофикс восстанавливает права, Caddyfile, сервисы, UFW-порты, cron лимита и Xray restart.
- добавлен Xray-core;
- добавлены VLESS TCP TLS, XTLS Vision, REALITY TCP;
- добавлены mKCP, WebSocket, gRPC, HTTPUpgrade, XHTTP;
- добавлен Trojan WebSocket через fallback;
- добавлен опциональный fallback hub на 443.
- добавлен лимит устройств;
- добавлены уникальные пользовательские ссылки;
- добавлены ручные команды lock/unlock.
- добавлен Cloudflare WARP proxy mode;
- добавлены команды настройки, проверки и удаления WARP.
- добавлен Hysteria 2;
- добавлены конфиги и QR для мобильных клиентов.
Проект распространяется по модели PolyForm Noncommercial 1.0.0 + Commercial License.
Разрешено личное, учебное, исследовательское и другое некоммерческое использование.
Коммерческое использование, перепродажа, включение в платные панели, SaaS, хостинг, VPN/proxy-сервисы, managed services и корпоративные продукты требует отдельной письменной коммерческой лицензии от автора.
- Telegram: @ivan_it_net
- Website: ivan-it.net
- GitHub: ivan-yurich/naiveproxy
- Донат: DonationAlerts