Зонд Ската
Установка зонда
Всё о маленькой программе, которая помогает Скату понять, открываются ли найденные 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 / ARMv5 | Raspberry 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 64 | VisionFive, 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 ВАШ_ТОКЕН- Диагностика. Скрипт собирает сведения об устройстве и отправляет их на сервер по HTTPS.
- Решение сервера. SUPPORTED или UNSUPPORTED. Если устройство не подходит, ничего не скачивается и не устанавливается, а скрипт объясняет, какие требования не выполнены.
- Установка. Скачивается сборка для вашей платформы, проверяется её SHA-256, пробный запуск; затем установка, регистрация зонда (он получает свой ID и секрет), служба автозапуска, запуск и проверка первого сигнала.
Только проверить устройство, ничего не устанавливая: добавьте --diagnose-only.
Ручная установка
Список сборок с контрольными суммами: https://api.scat-search.ru/api/probes/releases. На странице «Добавить провайдера» есть готовые команды под вашу платформу и токен.
- Скачайте сборку своей платформы в
/usr/local/bin/scat-probe(на OpenWrt в/usr/bin). - Сверьте SHA-256:
sha256sum /usr/local/bin/scat-probe. Не совпала — не запускайте. - Зарегистрируйте:
scat-probe enroll --api https://api.scat-search.ru --token ВАШ_ТОКЕН. - Добавьте службу и запустите её.
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»: зонд отключён или его учётные данные удалены. Удалите его и поставьте заново с новым токеном.