Skip to content
EN

Порт 502 — Modbus TCP

Коротко:

TCP/502 — стандартный порт Modbus TCP, industrial-протокол для PLC (Programmable Logic Controller) и SCADA-систем. Нет встроенной аутентификации и шифрования — изначально для изолированных OT-сетей. Открыть 502 в интернет = catastrophic risk (Shodan показывает 20k+ exposed Modbus-устройств). Исправление: IP whitelist + VPN, либо proxy через Modbus-secure (TCP/802).

Ниже: подробности, пример, связанные, FAQ.

Проверить доступность и порты →

Детали

  • Protocol: Modbus/TCP (RFC нет, de-facto от Schneider Electric 1999)
  • Function codes: 03 read holding, 06 write register, 16 write multiple
  • Security: нет auth, нет TLS (Modbus/TCP Security на 802 добавляет)
  • Shodan query: port:502 country:"RU" — публично сканируется
  • Детекторы: Nmap --script modbus-discover

Пример

# Проверить открыт ли порт
$ nc -zv 192.168.1.10 502

# Nmap scan
$ nmap -p 502 --script modbus-discover 192.168.1.10

# Python pymodbus — чтение регистров
from pymodbus.client import ModbusTcpClient
client = ModbusTcpClient('192.168.1.10', port=502)
resp = client.read_holding_registers(0, count=10)
print(resp.registers)

Связанные

Что такое порт 502 и его использование в Modbus TCP

Порт 502 — это стандартный порт, используемый для протокола Modbus TCP, который служит для обмена данными между устройствами автоматизации и SCADA-системами. Он обеспечивает надежную связь в системах управления, таких как промышленная автоматизация и мониторинг. Устройства, поддерживающие Modbus TCP, могут обмениваться информацией о состоянии, параметрах и управлении в реальном времени, что делает его важным элементом в инфраструктуре IoT.

Проверка доступности порта 502 для Modbus TCP

Для проверки доступности порта 502 на удаленном устройстве можно использовать утилиты командной строки, такие как telnet или nc (netcat). Например, чтобы проверить, открыт ли порт 502 на IP-адресе 192.168.1.100, выполните следующую команду:

telnet 192.168.1.100 502

Если соединение установлено, вы увидите сообщение о подключении. Если порт закрыт, вы получите сообщение об ошибке.

Также можно использовать nmap для более детального сканирования:

nmap -p 502 192.168.1.100

Эта команда покажет статус порта и укажет, открыт он или закрыт. Настройка правильного брандмауэра и маршрутизации имеет важное значение для успешного использования Modbus TCP, поэтому убедитесь, что порт 502 открыт для входящих и исходящих соединений в вашей сети.

Пример конфигурации Modbus TCP для работы с портом 502

Для настройки устройства, поддерживающего Modbus TCP, необходимо правильно указать параметры подключения. Рассмотрим пример конфигурации для устройства, работающего на базе Raspberry Pi с установленной библиотекой pymodbus.

Прежде всего, убедитесь, что библиотека pymodbus установлена. Если она не установлена, выполните:

pip install pymodbus

Затем создайте простой сервер Modbus TCP:

from pymodbus.server.sync import ModbusTcpServer
from pymodbus.datastore import ModbusSparseDataBlock

store = ModbusSparseDataBlock({})
server = ModbusTcpServer(store, port=502)
server.start()

Этот код создает сервер Modbus TCP, который слушает на порту 502. После запуска сервера можно подключаться к нему с помощью клиента Modbus. Для проверки работы сервера можно использовать такие инструменты, как QModMaster или Modbus Poll.

При успешном подключении клиент сможет запрашивать данные из сервера, что подтверждает правильность настройки порта 502 для работы с Modbus TCP. Не забудьте настроить правила брандмауэра, чтобы разрешить трафик на этом порту.

Больше по теме

Источники

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

Зачем знать?

Если есть промышленная автоматика (завод, energy, water) — ключевой ICS-порт. Утечка = физические последствия (stopper pipeline).

Можно ли в интернет?

Никогда в plain-text. Либо VPN, либо Modbus Secure (802) с TLS.

Альтернатива?

OPC UA (4840) — современный, с security, structured data. В новых проектах выбирают его.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.