Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

NET_LOGIN_ERROR_TIMEOUT (28) IP-Телефония и СКУД

Dahua NetSDK Ошибка 28: NET_LOGIN_ERROR_TIMEOUT — Таймаут авторизации

Обновлено: 24.08.2026 · Официальная документация ↗

Сбои при установке первичного сетевого соединения:

  • Функция CLIENT_LoginWithHighLevelSecurity длительно блокирует поток и возвращает ошибку 28.
  • В структуре stOut.nError фиксируется код 3 (Login timeout).
  • Периодические обрывы связи с удаленными филиалами или камерами, подключенными через 4G/LTE модемы.

Код NET_LOGIN_ERROR_TIMEOUT (28) возникает, когда клиент успешно отправил сетевой TCP-запрос на авторизацию, но устройство не прислало ответный пакет в течение установленного таймаута.

1. Увеличение времени ожидания соединения в SDK

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

// Установка таймаута на попытку TCP-коннекта: 5000 мс (5 сек), 3 попытки
CLIENT_SetConnectTime(5000, 3);

// Установка таймаута на чтение/запись данных запроса: 10000 мс (10 сек)
CLIENT_SetSubConnectTime(10000);

2. Проверка доступности порта 37777 (TCP handshake)

Убедитесь, что сервисный TCP-порт открыт и не фильтруется фаерволом:

# Linux/macOS
nc -zv -w5 192.168.1.108 37777

# Windows PowerShell
Test-NetConnection -ComputerName 192.168.1.108 -Port 37777

3. Проверка перегрузки CPU регистратора

Если к NVR подключено предельное количество клиентов или запущен экспорт тяжелого 4K-архива, процесс dhnetsvr может не успевать обрабатывать новые TCP-хэндшейки вовремя.

💡 Практика специалистов: Всегда выполняйте CLIENT_LoginWithHighLevelSecurity в отдельном рабочем потоке (Worker Thread) или пуле задач. Вызов логина в UI-потоке наглухо заморозит интерфейс на время таймаута.

Частые вопросы (FAQ)

В чем разница между ошибкой NET_NETWORK_ERROR и кодом 28 (TIMEOUT)?

NETWORK_ERROR означает немедленный сброс (TCP RST) или отсутствие маршрута (ICMP unreachable), а код 28 означает, что сокет открыт, но устройство зависло и не отвечает на прикладном уровне.

Помогает ли смена транспортного протокола с TCP на SSL?

Если используется защищенный порт (обычно 37778), укажите EM_LOGIN_SPEC_CAP_SSL в структуре stIn.emSpecCap.

Почему веб-интерфейс камеры открывается, а логин по SDK падает по таймауту?

Веб-интерфейс обслуживается демоном nginx/lighttpd на порту 80, а SDK работает с внутренним сервисом на порту 37777. Сбой сервиса dhnetsvr вешает только SDK.

Как влияет MTU на появление таймаутов логина?

При авторизации HighLevelSecurity передаются крупные пакеты с сертификатами/ключами. Некорректный MTU на VPN-туннелях приводит к молчаливому дропу фрагментов.

Полезные материалы
Рекомендуем