Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

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