Зонд Ската

Установка зонда

Всё о маленькой программе, которая помогает Скату понять, открываются ли найденные VPN-серверы из сети вашего провайдера: что она делает, чего не делает никогда и как её поставить или удалить.

Что такое зонд и зачем он нужен

Скат каждый день находит рабочие VLESS-конфигурации и проверяет их со своего сервера. Но провайдеры блокируют по-разному: сервер, который открывается у одного оператора, у другого может не отвечать. Узнать это можно только изнутри сети самого провайдера.

Зонд живёт на устройстве в вашей сети и по заданию Ската проверяет, можно ли достучаться до адреса и порта сервера: установить TCP-соединение, пройти TLS-рукопожатие, получить HTTP-ответ. Результаты появляются в карточках лучших конфигураций в разделе «Доступность в сетях».

Какие данные отправляет

  • При установке: сведения об устройстве для проверки совместимости (система, ядро, архитектура и модель процессора, объём памяти и места, система автозапуска, есть ли curl, wget, IPv4 и IPv6).
  • Раз в 30 секунд: сигнал «на связи» с версией зонда и временем работы.
  • По каждому заданию: получилось ли соединение, за сколько миллисекунд, код ошибки или HTTP-статус. Содержимое ответов серверов не передаётся.
  • Сервер видит IP-адрес, с которого приходят запросы. Он нигде не публикуется и нужен только для защиты от злоупотреблений.

Чего зонд не делает

  • Не запускает VLESS и Xray и не является VPN-клиентом: через него не идёт ничей трафик.
  • Не открывает входящие порты. Все соединения исходящие: зонд сам обращается к серверу Ската по HTTPS.
  • Не выполняет команды. Задание может быть только одним из трёх типов проверки со строгой схемой: TCP-соединение, TLS-рукопожатие, HTTP GET. Любое другое задание отбрасывается.
  • Не заглядывает в вашу сеть. Адреса в локальной сети, самого устройства, облачных метаданных и другие служебные диапазоны отклоняются и на сервере, и в самом зонде.
  • Не смотрит ваш трафик и не собирает сведения о других устройствах.

Требования

  • Linux с ядром 3.2 или новее (включая OpenWrt).
  • От 48 МБ оперативной памяти, из них 16 МБ свободно. Зонду обычно хватает 10 МБ.
  • Около 8 МБ свободного места для файла зонда (сборка для MIPS весит 6,9 МБ).
  • Права root, чтобы установить службу автозапуска.
  • curl или wget с поддержкой HTTPS и выход в интернет по IPv4.

Подходит любое устройство за тем же подключением: результат зависит от сети, а не от устройства.

Поддерживаемые платформы

ПлатформаНапример
Linux x86_64ПК, мини-ПК, серверы, виртуальные машины
Linux x86 (32-bit)старые ПК и тонкие клиенты
Linux ARM64 (aarch64)Raspberry Pi 3/4/5 с 64-битной системой, Orange Pi, роутеры на Filogic
Linux ARMv7 / ARMv6 / ARMv5Raspberry Pi с 32-битной системой, старые роутеры и NAS
Linux MIPS little-endian (mipsel)роутеры на MediaTek MT7621/MT7628 (Xiaomi, Keenetic с OpenWrt, Netgear)
Linux MIPS big-endianроутеры на Qualcomm Atheros (ath79): TP-Link, GL.iNet
Linux MIPS64роутеры на Cavium Octeon
Linux RISC-V 64VisionFive, Milk-V

Нужную сборку выбирает сервер по результатам диагностики. Например, роутер на MediaTek MT7621 с OpenWrt получает сборку MIPS little-endian: команда uname -m там показывает просто «mips», поэтому скрипт смотрит ещё на порядок байт и архитектуру OpenWrt.

Интерактивная установка

Получите токен на странице «Добавить провайдера»: там же будет готовая команда и видно, как идёт установка. Команда выглядит так:

curl -fsSL https://api.scat-search.ru/api/probes/install.sh | sh -s -- --token ВАШ_ТОКЕН
  1. Диагностика. Скрипт собирает сведения об устройстве и отправляет их на сервер по HTTPS.
  2. Решение сервера. SUPPORTED или UNSUPPORTED. Если устройство не подходит, ничего не скачивается и не устанавливается, а скрипт объясняет, какие требования не выполнены.
  3. Установка. Скачивается сборка для вашей платформы, проверяется её SHA-256, пробный запуск; затем установка, регистрация зонда (он получает свой ID и секрет), служба автозапуска, запуск и проверка первого сигнала.

Только проверить устройство, ничего не устанавливая: добавьте --diagnose-only.

Ручная установка

Список сборок с контрольными суммами: https://api.scat-search.ru/api/probes/releases. На странице «Добавить провайдера» есть готовые команды под вашу платформу и токен.

  1. Скачайте сборку своей платформы в /usr/local/bin/scat-probe (на OpenWrt в /usr/bin).
  2. Сверьте SHA-256: sha256sum /usr/local/bin/scat-probe. Не совпала — не запускайте.
  3. Зарегистрируйте: scat-probe enroll --api https://api.scat-search.ru --token ВАШ_ТОКЕН.
  4. Добавьте службу и запустите её.

systemd: /etc/systemd/system/scat-probe.service, затем systemctl enable --now scat-probe

[Unit]
Description=Скат provider probe
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/scat-probe run --config /etc/scat-probe/probe.json
Restart=always
RestartSec=10
CapabilityBoundingSet=
NoNewPrivileges=yes
ProtectSystem=strict
ReadWritePaths=/etc/scat-probe
MemoryMax=64M

[Install]
WantedBy=multi-user.target

OpenWrt (procd): /etc/init.d/scat-probe, затем chmod +x, enable и start

#!/bin/sh /etc/rc.common
USE_PROCD=1
START=95

start_service() {
    procd_open_instance
    procd_set_param command /usr/bin/scat-probe run --config /etc/scat-probe/probe.json
    procd_set_param respawn 3600 10 0
    procd_close_instance
}

OpenWrt

  • Если нет HTTPS в wget: opkg update && opkg install uclient-fetch libustream-mbedtls ca-bundle.
  • Команда для OpenWrt: wget -qO- https://api.scat-search.ru/api/probes/install.sh | sh -s -- --token ВАШ_ТОКЕН.
  • Зонд ставится в /usr/bin на раздел overlay и запускается через procd. Журнал: logread -e scat-probe.
  • Если на overlay мало места, освободите его (удалите ненужные пакеты) или подключите extroot на USB-накопителе.

Удаление

Остановит и удалит зонд, службу и учётные данные. На сайте зонд станет «не на связи».

curl -fsSL https://api.scat-search.ru/api/probes/install.sh | sh -s -- --uninstall

Если не работает

  • «could not reach»: проверьте, что на устройстве работает HTTPS и верное время (без него не проходит проверка сертификатов).
  • «token expired / already used»: токен одноразовый и действует 24 часа. Создайте новый на странице «Добавить провайдера».
  • Зонд установлен, но не на связи: журнал службы (journalctl -u scat-probe или logread -e scat-probe) и команда scat-probe check.
  • «credentials rejected»: зонд отключён или его учётные данные удалены. Удалите его и поставьте заново с новым токеном.

Пара слов от команды

Привет! Рады, что вы заплыли

Сразу извинимся за рекламу на сайте — мы знаем, что она мало кому нравится. Скат делает небольшая команда, и мы не пытаемся на вас заработать лишнего.

Но серверы и ежедневные проверки тысяч конфигураций стоят денег, и реклама — главное, что помогает Скату оставаться бесплатным и развиваться дальше.

Если захочется помочь, можно поддержать проект любой суммой. Это совсем необязательно, но каждый раз очень нас радует.