Головна Різне COM порт по мережі

COM порт по мережі

COM порт по мережі
COM порт по мережі

Часом виникає необхідність мати доступ до керованого обладнання ззовні мережі, і як в відомому анекдоті маємо на те 2 шляхи (жартую, звісно ж більше). Та часом трапляється так що необхідно мати віддалений доступ до пристроїв, керувати якими можна тільки через інтерфейс COM-порта, і звичайно ж нам може допомогти в тому питанні чудова програмка minicom, але рискаючи по портах я наткнувся на дещо більш цікаве!)

Мова йде про програмку ser2net, судячи з опису до порта "Serial to network proxy" виходить що вона виступає деяким посередником між мережею і COM-портом, що дає змогу нам підєднуватись до пристроїв просто ввівши IP і порт (як телнет).

Встановлюється утилітка доволі просто:

make install clean -C /usr/ports/comms/ser2net

конфігурація описується в файлику /usr/local/etc/ser2net.conf. 


Файлик містить

BANNER:banner1:Welcome to ser2net TCP port \p device \d\r\n\

second line \

third line\r\n



OPENSTR:open1:Open str\r\n



CLOSESTR:close1:close str\r\n



#CONTROLPORT:2000



TRACEFILE:tw1:/tmp/tw-\p-\Y-\M-\D-\H:\i:\s.\U

TRACEFILE:tr1:/tmp/tr-\p-\Y-\M-\D-\H:\i:\s.\U



8412:raw:600:/dev/cuau0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS tw=tw1 tr=tr1 attention

В першій строці задається текст, який виводиться при підключенні до сервера (тут можна написати щось про те що всі дії логуються і т.д.).

Формат BANNER:<name>:banner_text, при чому текст банера може бути багатостроковим (строки розділяються символами "\r\n") і містити модифікатори:

"\d" - ім'я пристрою,

"\p" - ТСР порт,

"\s" - параметри з'єднання з СОМ-портом,

"" - люба escape-послідовність стандарту "С".


Далі прописуються команди:

"OPENSTR" - ця команда відправляється пристрою під час підключення. Формат OPENSTR:<name>:openstr_text. Текст може приймати такі ж модифікатори, як і банер.

"CLOSESTR" - те саме що і OPENSTR, тільки команда буде відправлена при відключенні від обладнання (можна наприклад відсилати exit)

Формат CLOSESTR:<name>:closestr_text. Також може містити модифікатори як і банер.

"TRACEFILE" - ім'я файла, для збереження лога обміну (в нього пишеться все, що пише і читає COM-порт)

Формат TRACEFILE:<name>:filename.Також може містити модифікатори як і банер.

"CONTROLPORT" - порт керування. Задає порт через який можна міняти всі налаштування в реальному часі (не перезапускаючи демона). На практиці не використовується. Формат CONTROLPORT:<port>


Ну і найголовніше - зв'язки портів і сокетів:

Формат "<TCP port>:<state>:<timeout>:<device>:<options>":

"TCP port" - номер TCP порта, можна задати в форматі 127.0.0.1,2000 для привязки до конкретної адреси, або просто числом для привязки до всіх інтерфейсів,

"state" - може мати значення raw, rawlp, telnet, off

    При off порт не приймає підключення; 

    При raw передача даних ведеться "as is";

    При rawlp відкриття порта пристрою відбувається без "termios", що дозволяє звертатись до /dev/lpX і принтерів;

    При telnet запускаються протоколи telnet.

"timeout" - задає час простою, через який порт відключається.

"device" - адреса пристрою в форматі /dev/<device>

"options" - встановлення параметрів з'єднання з СОМ-портом. Значення пишуться через кому.

300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 - швидкості порта;

EVEN, ODD, NONE - налаштування парності бит;

1STOPBIT, 2STOPBITS - кількість стопбіт;

Далі, через пробіл вказується ім'я банера, openstr, closestr, tracefile (в форматі tw=tracefile для логування input і tr=tracefile для логування output), які ми настроїли вище.

Не забуваємо про автозапуск:

echo 'ser2net_enable="YES"' >> /etc/rc.conf

Запускаємо:

service ser2net start

Низького пінгу і високого аптайму!)

perm_identity event

Коментарі

18 вер. 2019 р., 10:07

Я на сервер ставив minicom, створював юзера з оболонкою /usr/local/bin/minicom а потім просто slogin minicom@remote-host

Ai SolarireplyВідповісти