═══════════════════════════════════════════════════════════════════ Инструменты обслуживания нод Fashion VPN https://sc.fashion.beer/ · обновлено 19.08.2026 ═══════════════════════════════════════════════════════════════════ Три скрипта. Первый смотрит и ничего не трогает, второй чинит, третий проверяет доступность из России. Первые два безопасны для запуска на работающей ноде с пользователями. ─────────────────────────────────────────────────────────────────── 1. node-check.sh — ДИАГНОСТИКА (только чтение) ─────────────────────────────────────────────────────────────────── curl -fsSL https://sc.fashion.beer/node-check.sh | bash Занимает ~20 секунд. Показывает по каждому пункту вердикт ✅ норма / ⚠️ присмотреть / 🔴 чинить, с уже проставленными порогами: steal >5% гипервизор зажимает CPU — только сменой хостера ретрансмиты >2% потери в канале — вопрос к хостеру дропы >0 режет шейпер выше по течению джиттер >2 мс пользователи ловят рывки очередей rx =1 и RPS выключен → лечится вторым скриптом Отдельно показывает посторонние контейнеры (всё, что не remnawave) и список открытых наружу портов. ─────────────────────────────────────────────────────────────────── 2. node-net-tune.sh — НАСТРОЙКА (меняет систему) ─────────────────────────────────────────────────────────────────── curl -fsSL https://sc.fashion.beer/node-net-tune.sh -o /tmp/t.sh bash /tmp/t.sh --check # только посмотреть, что сделает bash /tmp/t.sh # применить bash /tmp/t.sh --rollback # откатить Что делает: включает RPS/RFS и приводит qdisc к fq — но ТОЛЬКО если у сетевой карты одна очередь приёма. Если очередей несколько, приём уже разведён по ядрам аппаратно, и скрипт сам откажется что-то менять: там RPS только мешает. Перед изменениями кладёт бэкап в /root/net-tuning-backup-<дата>/. Закрепляется службой rps-tuning.service, переживает перезагрузку. Повторный запуск безопасен. Что даёт: убирает всплески задержки, а не средний пинг. На замерах парка максимум упал со 172 до 57 мс, джиттер с 22 до 0.5 мс. ─────────────────────────────────────────────────────────────────── ПРОВЕРКА ПОДЛИННОСТИ (рекомендуется) ─────────────────────────────────────────────────────────────────── Скрипты выполняются от root, поэтому лучше сверять контрольную сумму, а не выполнять скачанное вслепую: curl -fsSL https://sc.fashion.beer/node-check.sh -o /tmp/c.sh curl -fsSL https://sc.fashion.beer/SHA256SUMS grep node-check /tmp/SHA256SUMS | sed 's|node-check.sh|/tmp/c.sh|' | sha256sum -c - \ && bash /tmp/c.sh Если файл подменили на сервере — проверка не пройдёт и скрипт не запустится. ─────────────────────────────────────────────────────────────────── ПРОГОН ПО ВСЕМУ ПАРКУ ─────────────────────────────────────────────────────────────────── for ip in 94.26.83.34 91.92.34.67 116.206.95.66 95.85.226.40; do echo "═══ $ip" ssh root@$ip 'curl -fsSL https://sc.fashion.beer/node-check.sh | bash' done Собери вывод и смотри, где 🔴. Настройкой лечится только один пункт — очередь rx. Остальное это разговор с хостером, зато с цифрами на руках. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 3. ru-check.sh — ДОСТУПНОСТЬ ИЗ РОССИИ (ничего не трогает) ─────────────────────────────────────────────────────────────────── bash <(curl -s https://sc.fashion.beer/r) 144.31.178.192 bash <(curl -s https://sc.fashion.beer/r) 1.2.3.4:8443 5.6.7.8 Порт по умолчанию 443. Занимает ~30 секунд на адрес. Бьёт с зондов Globalping, помеченных eyeball-network — это ДОМАШНИЕ и МОБИЛЬНЫЕ провайдеры: МТС, Ростелеком, ЭР-Телеком, Смолтелеком, Курсктелеком и другие, 12 городов от Калининграда до Хабаровска. Не дата-центры. Именно там сидят пользователи и работает ТСПУ. Запускать можно откуда угодно, проверяемая нода не участвует. Вердикты: доступен из РФ дошло со всех зондов НЕДОСТУПЕН из РФ не дошло ни с одного — блокировка по IP частично режут не все операторы порт закрыт TCP дошёл, но порт закрыт: IP чистый, сервис просто не поднят Как читать строки: дошёл TCP прошёл. «other side closed» и ошибки TLS — это норма: REALITY не отвечает на обычный HTTPS-запрос. НЕ ДОШЁЛ таймаут. Либо IP заблокирован, либо сервер лежит. порт зкр IP чистый, сервиса нет. ВЫКЛЮЧЕННУЮ ноду проверять по порту 22 — иначе таймаут не отличить от «никто не слушает»: bash <(curl -s https://sc.fashion.beer/r) 1.2.3.4:22 Число зондов меняется переменной RU_CHECK_LIMIT (по умолчанию 12). ЧЕГО НЕ ПОКАЖЕТ: · Только TCP-коннект. Если порт открывается, а VPN не работает — режут протокол, а не адрес; смена IP не поможет, нужен другой транспорт. · ICMP тут ни при чём: на нодах ping закрыт ufw, «не пингуется» само по себе не значит ничего. ─────────────────────────────────────────────────────────────────── 4. node-access.sh — ВХОД И ВЫХОД (ничего не трогает) ─────────────────────────────────────────────────────────────────── bash <(curl -s https://sc.fashion.beer/a) обе части bash <(curl -s https://sc.fashion.beer/a) --ru только РФ bash <(curl -s https://sc.fashion.beer/a) --svc только сервисы bash <(curl -s https://sc.fashion.beer/a) --ip 1.2.3.4 --ports 443,8443 bash <(curl -s https://sc.fashion.beer/a) --from 1.2.3.4 ЕСЛИ НА СЕРВЕРЕ ДВА IP — сам скрипт возьмёт адрес по умолчанию, то есть СТАРЫЙ. Новый надо задавать руками, причём в двух разных ключах: --ip <НОВЫЙ> проверить ВХОД: бьют ли по нему из России --from <НОВЫЙ> проверить ВЫХОД: чью репутацию видят сервисы Оба сразу — полная картина по новому адресу: bash <(curl -s https://sc.fashion.beer/a) --ip <НОВЫЙ> --from <НОВЫЙ> Опечатался в --from — curl честно скажет «Cannot assign requested address», молча не подменит. Запускать НА НОДЕ. Отвечает на два разных вопроса: ВХОД — режут ли этот сервер из России. Свой внешний IP и слушающие порты определяет сам. Зонды абонентских сетей, 12 городов. ВЫХОД — пускают ли сервисы трафик С этого адреса. Нейросети и соцсети банят дата-центровые IP по репутации, и увидеть это можно только с самой ноды. 11 нейросетей + 14 соцсетей и медиа. Вердикты выхода: ок пускает. 401 и 404 — тоже «пускает», просто нет ключа или пути. Ложным минусом не считается. челлендж Cloudflare человек откроет после проверки, приложения и API работать не будут IP забанен адрес в чёрном списке сервиса закрыто по стране гео-ограничение отказ NNN (антибот) сервис вернул отказ, но прислал настоящую страницу — у человека в браузере, скорее всего, откроется. Так отвечает, например, Reddit на дата-центровые IP. ЧТО ЧЕМ ЛЕЧИТСЯ — главное различие: вход заблокирован → менять ВХОДНОЙ IP (адрес хоста в панели) выход забанен → менять ВЫХОДНОЙ IP (sendThrough / SNAT) Это независимые вещи, потому проверки и разделены. Лимит Globalping — 250 зондов в час на адрес запуска; при исчерпании часть про РФ честно пишет, что не смогла.