Как создать виртуальный порт в Windows

Когда программа для диагностики оборудования или эмулятор GPS требует указать COM-порт, а физического разъёма в компьютере нет, выходом становится виртуальный последовательный порт — программная эмуляция интерфейса RS-232, которая для операционной системы выглядит как настоящее устройство. Создать его можно как штатными средствами Windows, так и с помощью специальных утилит, и весь процесс занимает несколько минут.

Виртуальные порты используют для связи двух приложений между собой, отладки программ, работающих с COM-интерфейсом, подключения USB-устройств через драйверы эмуляции и тестирования оборудования без реального железа. Ниже разберём основные способы создания виртуального порта, их настройку и типичные ошибки.

Что такое виртуальный порт и когда он нужен

Виртуальный COM-порт — это программный объект, который имитирует поведение физического последовательного порта. Приложения обращаются к нему так же, как к реальному разъёму: открывают, отправляют данные, читают ответ. Разница лишь в том, что данные передаются не по проводам, а внутри системы — между программами или через драйвер.

Типичные сценарии, где без виртуального порта не обойтись:

  • 🔌 Связь двух программ через пару соединённых виртуальных портов (например, эмулятор датчика и программа мониторинга).
  • 🛰️ Передача данных GPS-навигации из смартфона или эмулятора в навигационное ПО.
  • 🔧 Отладка и тестирование программ для микроконтроллеров без подключения реального устройства.
  • 💾 Работа старого ПО, рассчитанного на COM-порт, на современных компьютерах без такого разъёма.

Способ 1. Драйвер USB-устройства (USB-Serial)

Самый распространённый сценарий: вы подключаете устройство через USB, а оно определяется в системе как виртуальный COM-порт. Так работают адаптеры USB-to-Serial, программаторы, платы Arduino и многие диагностические сканеры. В этом случае порт создаётся автоматически после установки драйвера устройства.

Порядок действий: подключите устройство к USB, дождитесь установки драйвера (или установите его с сайта производителя чипа — например, FTDI, CH340 или CP210x), затем откройте Диспетчер устройств и проверьте раздел «Порты (COM и LPT)». Там должна появиться строка вида «USB Serial Port (COM3)».

Если устройство определилось, но номер порта неудобен (некоторые старые программы работают только с COM1–COM4), его можно изменить: откройте свойства порта в Диспетчере устройств, перейдите на вкладку Параметры порта, нажмите Дополнительно и выберите нужный номер из списка.

⚠️ Внимание: если в Диспетчере устройств порт появился с жёлтым восклицательным знаком, драйвер установлен некорректно. Удалите устройство, отключите его от USB и установите драйвер заново, скачав актуальную версию с официального сайта производителя чипа.

Способ 2. Программа com0com (бесплатная)

Для связи двух программ между собой без всякого железа удобнее всего использовать com0com — свободный драйвер с открытым кодом, который создаёт пары связанных виртуальных портов. Данные, записанные в один порт пары, мгновенно появляются на другом — как если бы их соединил нуль-модемный кабель.

После установки com0com откройте утилиту настройки Setup Command Prompt или графический конфигуратор из комплекта. По умолчанию создаётся одна пара портов с именами вида CNCA0 и CNCB0 — их можно переименовать в привычные COM-номера, например COM10 и COM11, чтобы программы видели их в стандартных списках.

☑️ Создание пары портов через com0com

Выполнено: 0 / 5

Чтобы проверить работу пары, откройте два терминала (например, PuTTY в режиме Serial), подключите их к разным портам пары и отправьте текст из одного — он должен появиться во втором. Если данные проходят, связка настроена правильно.

📊 Для какой задачи вам нужен виртуальный COM-порт?
Связь двух программ между собой
Подключение USB-устройства (Arduino, сканер)
Отладка и тестирование ПО
Эмуляция GPS или датчиков

Способ 3. Virtual Serial Port Driver и аналоги

Коммерческие программы вроде Virtual Serial Port Driver от Eltima предлагают более удобный интерфейс: создание пар портов в один клик, разветвление одного порта на несколько, объединение портов и мониторинг трафика. Это удобно, если нужны сложные схемы — например, чтобы одно устройство «слушали» сразу три программы.

Общий принцип у всех таких утилит одинаков: вы устанавливаете программу, нажимаете кнопку добавления пары портов, выбираете номера (или оставляете автоматические) и подтверждаете создание. Порты появляются в системе сразу и сохраняются после перезагрузки.

ИнструментТипОсновное назначение
Драйвер USB-SerialБесплатный (от производителя)Подключение реального USB-устройства
com0comБесплатный, open sourceПары связанных портов для связи программ
Virtual Serial Port DriverПлатныйСложные схемы: разветвление, объединение портов
com2tcp / hub4comБесплатныйПроброс COM-порта через сеть (TCP/IP)

Проверка работоспособности порта

После создания порта полезно убедиться, что он открывается и передаёт данные. Самый простой способ — терминальная программа: PuTTY, Terminal или встроенный монитор порта в среде разработки. Укажите номер порта, скорость (для виртуальных портов она часто не критична, но программы могут требовать конкретное значение, например 9600 бод) и откройте соединение.

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

⚠️ Внимание: ошибка «порт занят» или «access denied» почти всегда означает, что порт уже открыт другой программой — закройте терминалы, среды разработки и фоновые утилиты мониторинга, прежде чем подключаться снова.

Типичные проблемы и их решение

Чаще всего пользователи сталкиваются с тремя ситуациями. Первая — порт создан, но программа его не видит: обычно помогает перезапуск программы после создания порта, так как многие приложения сканируют порты только при старте. Вторая — порт пропадает после перезагрузки: проверьте настройки утилиты, в com0com пары сохраняются автоматически, а в некоторых программах есть отдельная опция автозапуска конфигурации.

Третья ситуация — конфликт номеров. Если вы вручную назначили номер, который система считает занятым (даже если устройства сейчас нет), измените номер на свободный через Диспетчер устройств. Пометка «in use» рядом с номером порта в расширенных настройках не всегда означает реальное занятие — часто это следы ранее подключённых устройств.

Как удалить «мертвые» COM-порты из системы

В Диспетчере устройств включите «Вид → Показать скрытые устройства», раскройте раздел «Порты (COM и LPT)» — отобразятся полупрозрачные записи отключённых устройств. Их можно удалить через контекстное меню, освободив номера портов.

Часто задаваемые вопросы

Можно ли создать виртуальный COM-порт без сторонних программ?

Штатных средств для создания пары виртуальных портов в Windows нет — система создаёт такие порты только при установке драйвера реального устройства. Для связи программ между собой понадобится com0com или аналогичная утилита.

Сколько виртуальных портов можно создать?

Практический лимит определяется используемой утилитой и свободными номерами. Для большинства задач достаточно одной-двух пар; при необходимости com0com позволяет создать множество пар.

Почему программа требует порт с номером от COM1 до COM4?

Это ограничение старого ПО, написанного под классические аппаратные порты. Решение — вручную назначить виртуальному порту младший номер через Диспетчер устройств или настройки утилиты, создавшей порт.

Работают ли виртуальные порты после перезагрузки?

Да, если драйвер или утилита настроены на автоматическое восстановление конфигурации. В com0com пары сохраняются по умолчанию, в коммерческих программах проверьте соответствующую опцию в настройках.

Можно ли пробросить виртуальный порт на другой компьютер?

Да, для этого используются утилиты типа hub4com или специализированные программы COM-over-IP, которые связывают порт с TCP-соединением. На удалённой машине создаётся зеркальный виртуальный порт.