Video Surveillance

Telegram-уведомления от VMS: когда тревога должна дойти, даже если провайдер против

Облачные технологии Новости видеонаблюдения В фокусе
teleproxy
Видеонаблюдение давно перестало быть просто архивом “на всякий случай”. Современная VMS программа обнаруживает движение, человека, автомобиль, номер, лицо, дым, огонь или подозрительный звук и сразу отправляет уведомление оператору. В идеальной схеме все просто:
VMS программа -> Telegram
Но на практике между системой видеонаблюдения и Telegram может появиться провайдер с ограничениями, замедлением или нестабильной маршрутизацией. Для обычной переписки это неприятно. Для охранной системы это уже проблема: событие произошло, камера его увидела, VMS его обработала, но уведомление до ответственного человека дошло с задержкой или не дошло вообще.
Один из рабочих способов решить эту задачу, использовать Teleproxy. Это бесплатный open-source MTProto-прокси для Telegram на github. Он подходит именно для тех случаев, когда VMS программа работает как Telegram-клиент, а не отправляет сообщения через Telegram Bot API. Например, это возможно в SmartVision, в которой Telegram-уведомления реализованы через клиентское подключение к Telegram, а не через бот.

Teleproxy

Teleproxy ставится на отдельный VPS-сервер. VMS программа подключается не напрямую к Telegram, а через этот сервер.
Схема становится такой:
VMS программа -> Teleproxy на VPS -> Telegram -> телефон или компьютер оператора
Для пользователя это выглядит просто: раньше в настройках Telegram-уведомлений VMS программа подключалась напрямую, теперь в нее добавляются параметры MTProto-прокси: сервер, порт и secret. После этого уведомления о событиях идут через ваш собственный промежуточный сервер.
Teleproxy не является системой видеонаблюдения, не подключается к камерам, не хранит видеоархив и не анализирует события. Его задача начинается уже после того, как VMS обнаружила событие: помочь Telegram-сообщению пройти через сеть, где прямое подключение к Telegram работает плохо.

Что понадобится

Для работы нужен VPS-сервер на Linux. Подойдет небольшой виртуальный сервер с Ubuntu или Debian. Обычно для уведомлений от системы видеонаблюдения не требуется мощная машина. Важнее другое: чтобы сервер находился в сети, где Telegram работает стабильно.
Также нужен открытый TCP-порт, обычно используют порт 443. Это стандартный порт HTTPS, поэтому такой трафик выглядит для сети естественнее, чем подключение к редкому нестандартному порту. Старый инженерный принцип здесь работает безотказно: чем меньше система выделяется на фоне обычного трафика, тем меньше к ней вопросов.
Желательно использовать собственный VPS, а не случайный публичный прокси из интернета. Публичный прокси может исчезнуть, перегрузиться, сменить настройки или просто перестать работать. Для охранных уведомлений это плохая лотерея.

Шаг 1. Арендовать VPS

Первый шаг: выбрать VPS-провайдера и создать сервер с Linux. Для небольшой установки достаточно минимальной конфигурации. Главное, чтобы были публичный IP-адрес, доступ по SSH, возможность открыть порт 443 и стабильная связь с Telegram.
Лучше не ставить Teleproxy на тот же сервер, где уже работает сайт, панель управления или другая важная инфраструктура. Если порт 443 уже занят веб-сервером, начнутся лишние сложности. Для простого пользователя отдельный VPS под Teleproxy обычно проще и надежнее.

Шаг 2. Установить Teleproxy

Самый простой путь, использовать Docker-образ Teleproxy. В этом случае не нужно вручную собирать программу, скачивать конфигурации Telegram и прописывать длинные параметры запуска. Контейнер сам запускает прокси, генерирует secret и показывает ссылку для подключения.
После запуска Teleproxy нужно открыть его журнал запуска. В нем будет ссылка для добавления прокси в Telegram. Из этой ссылки для VMS программы нужны три значения:
server, port, secret.
Server, это IP-адрес или доменное имя вашего VPS. Port, обычно 443. Secret, это специальный ключ подключения к MTProto-прокси.
Важно не путать secret с паролем от Telegram. Это не пароль от аккаунта, а технический ключ для подключения к вашему прокси-серверу. Если secret скопирован с ошибкой, подключение не заработает. Один лишний пробел, и вся схема превращается в классический случай “у меня ничего не трогали, оно само”.

Шаг 3. Проверить Teleproxy обычным Telegram-клиентом

Перед подключением VMS программы полезно проверить прокси через обычный Telegram Desktop или Telegram на телефоне.
В Telegram нужно открыть настройки подключения, выбрать использование прокси, указать MTProto, сервер, порт и secret. Если Telegram через этот прокси подключился и работает, значит Teleproxy установлен правильно.
Это важный диагностический шаг. Если обычный Telegram-клиент не подключается через ваш прокси, VMS программа тоже не подключится. Сначала нужно проверить VPS, firewall, порт 443, правильность secret и доступность сервера из вашей сети.

Шаг 4. Подключить прокси в VMS программе

В настройках Telegram-уведомлений VMS программы нужно выбрать подключение через MTProto proxy.
Типовая настройка выглядит так:
  • Telegram notifications: включено
  • Connection type: MTProto proxy
  • Server: IP-адрес или домен VPS
  • Port: 443
  • Secret: ключ из Teleproxy
После сохранения настроек нужно отправить тестовое уведомление. Хорошая VMS программа должна показывать не просто “ошибка”, а нормальную диагностику: удалось ли подключиться к серверу, принят ли secret, установлено ли соединение с Telegram, отправлено ли тестовое сообщение.
Если тестовое сообщение пришло, можно считать базовую настройку завершенной.
Рабочая схема будет такой:
  • Камера фиксирует событие.
  • VMS программа анализирует поток.
  • VMS программа формирует уведомление.
  • Уведомление отправляется через Teleproxy.
  • Telegram доставляет сообщение оператору.

Шаг 5. Использовать F-TLS, если обычный режим режется

В некоторых сетях простого MTProto-прокси может быть недостаточно. Если провайдер использует глубокий анализ пакетов, соединение может определяться и ограничиваться. Для таких случаев в Teleproxy есть режим F-TLS.
Идея F-TLS в том, что трафик выглядит ближе к обычному защищенному HTTPS-соединению. Для пользователя это не меняет общую логику подключения: все равно остаются server, port и secret. Но secret в таком режиме обычно будет другим, поэтому после переключения режима его нужно заново скопировать из настроек Teleproxy и обновить в VMS программе.
Практический порядок такой: сначала проверить обычный режим, затем, если связь нестабильная, включить F-TLS, получить новый secret, заменить его в VMS программе и снова отправить тестовое уведомление.

Шаг 6. Не открывать служебную статистику наружу

У Teleproxy есть порт статистики и мониторинга. Он полезен администратору: можно посмотреть соединения, активность, ошибки и нагрузку. Но этот интерфейс не должен быть доступен всему интернету.
Правильный вариант, оставить статистику доступной только локально на VPS или через VPN. Наружу должен быть открыт только порт, через который подключаются Telegram-клиенты, обычно 443.
Это простое правило, но оно хорошо отделяет аккуратную установку от “сервер вроде работает, но почему-то стал частью чужого цирка”.

Шаг 7. Настроить автозапуск

Teleproxy должен запускаться автоматически после перезагрузки VPS. Иначе после планового обслуживания, сбоя питания или перезапуска сервера уведомления могут перестать уходить.
При установке через Docker обычно задается режим автоматического перезапуска контейнера. При установке без Docker используется системная служба Linux. Для пользователя важно не название технологии, а результат: сервер перезагрузился, Teleproxy сам поднялся, VMS программа снова может отправлять уведомления.
После любой перезагрузки полезно выполнить простую проверку: открыть Telegram через этот прокси или отправить тестовое уведомление из VMS программы.

Шаг 8. Проверить всю цепочку

Если уведомления не приходят, проверять нужно по порядку.
Сначала VPS: работает ли сервер, открыт ли порт 443, не остановлен ли Teleproxy.
Потом прокси: подключается ли обычный Telegram-клиент через этот server, port и secret.
Потом VMS программа: выбран ли именно MTProto proxy, правильно ли скопирован secret, не указан ли случайно HTTP или SOCKS-прокси.
Потом Telegram-сессия: авторизована ли VMS программа как Telegram-клиент, не сброшена ли сессия, есть ли доступ к нужному чату или пользователю.

Нужно иметь ввиду

Teleproxy не делает Telegram “бессмертным”. Если сеть полностью блокирует соединение с вашим VPS, если сам VPS недоступен, если порт закрыт firewall, уведомления не пройдут. Поэтому для критичных объектов стоит иметь резервный канал: email, SMS, push через другой сервис, локальную сирену, HTTP webhook или интеграцию с системой диспетчеризации.
Teleproxy решает конкретную задачу: помогает Telegram-клиенту работать через промежуточный MTProto-прокси, когда прямое подключение к Telegram ограничено или замедлено.
Также важно не путать два разных способа отправки уведомлений. Если программа использует Telegram Bot API, то есть обращается к адресам Telegram Bot API, Teleproxy не является прямой заменой. Но если VMS программа работает как Telegram-клиент по MTProto, Teleproxy подходит именно для такой схемы.

Рекомендуемая схема для видеонаблюдения

Для системы видеонаблюдения с Telegram-уведомлениями схема выглядит так:
VMS программа -> Teleproxy VPS -> Telegram -> оператор
Для более аккуратной эксплуатации лучше использовать порт 443, включить F-TLS при проблемах с DPI, закрыть служебную статистику от внешнего доступа и регулярно проверять тестовую отправку уведомлений.
Teleproxy полезен там, где Telegram-уведомления от системы видеонаблюдения должны доходить даже при ограничениях со стороны провайдера. Видеонаблюдение не любит “почти работает”: тревога либо доставлена, либо нет. Поэтому собственный MTProto-прокси на VPS дает более управляемую схему, чем надежда на прямое соединение.