Как восстановить и стабилизировать работу ККТ Штрих-М через RNDIS на сервере терминалов?

Системный администратор Торговля и дистрибуция
← На главную

Работа с контрольно-кассовой техникой (ККТ) в терминальной среде часто сопряжена с техническими сложностями, особенно когда речь идет о современных аппаратах «Штрих-М», использующих технологию RNDIS. Этот метод эмулирует сетевое подключение через USB-кабель, что позволяет передавать данные по протоколу TCP/IP. Однако такая связка часто оказывается нестабильной: проброс портов «отваливается», IP-адреса меняются, а служба общего доступа Windows (ICS) перестает транслировать пакеты на сервер.

В данной статье мы подробно разберем, как настроить стабильную работу одной или нескольких касс, подключенных к локальному компьютеру и проброшенных на сервер терминалов под управлением Windows Server 2016 или аналогичных систем. Мы проанализируем причины сбоев и внедрим пошаговые решения для обеспечения бесперебойной печати чеков.

Понимание технологии RNDIS и механизма общего доступа

Когда мы подключаем ККТ «Штрих-М» через USB в режиме RNDIS, в системе появляется новый сетевой адаптер. По умолчанию Windows пытается использовать службу Internet Connection Sharing (ICS) для предоставления этому адаптеру доступа к сети. Рассмотрим стандартную схему: касса получает виртуальный адрес (обычно из диапазона 192.168.137.x), а компьютер выступает в роли шлюза. Основная проблема заключается в том, что после перезагрузки компьютера или сервера настройки «шаринга» (общего доступа) часто сбрасываются, хотя визуально в интерфейсе галочка может стоять.

Решение 1: Настройка статических IP-адресов и устранение конфликтов

Если к одному компьютеру подключено несколько касс, операционная система может запутаться в распределении адресов. Разберем по шагам, как правильно развести устройства:

  1. Откроем Тест драйвера ККТ и перейдем в раздел «Параметры ККТ» (или «Таблицы»).
  2. Найдем Таблицу №21 (Сетевые интерфейсы). Для каждого аппарата необходимо задать уникальный IP-адрес. Например, для первой кассы — 192.168.137.111, для второй — 192.168.137.112.
  3. Проверим, что маска подсети установлена как 255.255.255.0, а шлюз — 192.168.137.1 (это будет адрес вашего локального ПК).
  4. Важный нюанс: В настройках самих сетевых адаптеров в Windows (Центр управления сетями) также следует жестко прописать IP-адреса. Для виртуального адаптера первой кассы установим 192.168.137.2, для второй — 192.168.137.3 и так далее. Это предотвратит самопроизвольное изменение адресов при перезагрузке.

Решение 2: Стабилизация службы ICS через реестр

Выясним причину, по которой «расшаривание» порта перестает работать через некоторое время. В Windows Server 2016 и Windows 10 служба SharedAccess (Общий доступ к подключению к Интернету) часто инициализируется раньше, чем успевают подняться виртуальные USB-адаптеры. Рассмотрим, как принудительно заставить систему сохранять настройки.

Для этого нам потребуется внести изменения в системный реестр. Проанализируем следующие параметры:

  1. Нажмите Win + R, введите regedit.
  2. Перейдите в ветку: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess.
  3. Создайте параметр DWORD (32 бита) с именем EnableRebootPersistConnection и установите значение 1.
  4. Это позволит системе автоматически восстанавливать общий доступ после перезагрузки.

Кроме того, рекомендуется изменить тип запуска службы. Зайдем в services.msc, найдем «Общий доступ к подключению к Интернету (SharedAccess)» и установим тип запуска «Автоматически (отложенный запуск)». Это даст время USB-устройствам определиться в системе.

Решение 3: Альтернативный проброс через Netsh (Portproxy)

Если стандартный механизм Windows «Разрешить другим пользователям сети использовать подключение» работает нестабильно, рассмотрим более профессиональный метод — использование команды netsh. Этот способ позволяет жестко перенаправить трафик с порта локального компьютера на IP-адрес кассы.

Допустим, адрес вашей кассы 192.168.137.111, а порт по умолчанию 7778. Мы хотим, чтобы сервер терминалов обращался к вашему ПК по его физическому адресу (например, 192.168.1.50) на порт 7778, а запрос уходил на кассу. Выполним команду в командной строке от имени администратора:


netsh interface portproxy add v4tov4 listenaddress=192.168.1.50 listenport=7778 connectaddress=192.168.1.111 connectport=7778

Преимущество этого метода в том, что он работает на более низком уровне системы и не зависит от графического интерфейса «общего доступа» сетевых подключений.

Решение 4: Управление электропитанием USB-концентраторов

Часто проброс порта перестает работать из-за того, что сервер или ПК «усыпляет» USB-порт для экономии энергии. Проанализируем состояние диспетчера устройств:

  1. Откройте Диспетчер устройств.
  2. Разверните узел «Контроллеры USB».
  3. Найдите все пункты «Корневой USB-концентратор».
  4. В свойствах каждого из них на вкладке «Управление электропитанием» снимите галочку «Разрешить отключение этого устройства для экономии энергии».
  5. Повторите это для самого сетевого адаптера RNDIS в разделе «Сетевые адаптеры».

Решение 5: Настройка Брандмауэра (Firewall)

Проанализируем ситуацию, когда физически связь есть, но пакеты блокируются. При использовании RNDIS Windows часто классифицирует новое подключение как «Общественная сеть» (Public), где порты закрыты по умолчанию.

Необходимо создать явное правило для входящих соединений:

  1. Зайдите в «Брандмауэр Windows в режиме повышенной безопасности».
  2. Создайте правило для порта 7778 (или того порта, который вы указали в таблицах ККТ).
  3. Разрешите подключение для всех профилей: Доменный, Частный и Общий.

Использование RDP Extension от Штрих-М

Если вышеописанные методы кажутся слишком сложными или не обеспечивают нужной стабильности, рассмотрим использование специализированного ПО. Компания «Штрих-М» разработала компоненту RDP Extension. Она работает по аналогии с пробросом принтеров: на локальный ПК устанавливается клиентская часть, на сервер — серверная. Касса пробрасывается внутри RDP-канала, что полностью снимает вопросы с IP-адресацией и настройкой ICS. Это наиболее современный и рекомендуемый способ для работы в терминальных сессиях.

Подведем итог: для стабильной работы необходимо обеспечить статичность IP-адресов в таблицах ККТ и настройках Windows, применить твик реестра для службы SharedAccess и отключить экономию энергии на USB-портах. Совместное применение этих мер позволит забыть о проблемах с «отвалами» касс в начале рабочего дня.

← На главную