LINUX.ORG.RU
решено ФорумAdmin

Создать Ethernt-соединение через COM-порт между двумя компьютерами

 , ,


5

5

Привет, народ!

Нужно мне сделать очень странную вещь: пробросить Ethernet-соединение через COM-порт. Да, я знаю что это дичь, что такое никому не нужно, что будет медленно работать. Но таковы нынешние реалии.

Итак, имеется две машины, на одной стоит Linux, на второй Windows. Они находятся в физически разных Ethernet-сетях. Между ними нужно сделать иногда включаемое Ethernet-соединение. Из дополнительного оборудования - только шнур для соединения по COM-порту компьютер-компьютер (DTE-DTE DB9). Шнур проверен, соединение между терминалами lin+minicom <-> win+putty работает без вопросов.

То есть, еще раз: нужна Ethernet-сеть через физический COM-порт. Весь интернет забит решением совершенно противоположной задачи - как сделать проброс COM-порта через Ethernt-сеть. А вот как пробросить Ethernet через COM-порт - такого не нашел ни в рунете, ни в англонете.

Насколько я понял, возможно, под Linux можно будет обойтись одним только socat (а возможно и нет, я не специалист в этих делах). Вроде как socat умеет создавать виртуальное сетевое TUN-устройство, которое можно связать с COM-портом. Но у меня это сделать не получилось.

Что делать на стороне Windows - вообще ума не приложу, но вроде имеется socat for windows.

У меня есть подозрение, что одним только socat обойтись не получится, и в Linux придется еще крутить что-то наподобе ip net tap, а на стороне Windows брать кусок OpenVPN, через который создастся виртуальные сетевой интерфейс, и на него завернуть COM-порт через socat for Windows.

Чтобы это сделать мне нужно понять как действовать глобально (какую схему применить) и какими командами все это пытаться собрать вместе. Возможно, что вообще есть другое готовое opensource решение, а я о нем просто не знаю.

И еще, я все никак не могу понять синтаксис socat: что указывается в качестве первого и второго адреса в параметрах? Для стороны Linux надо первым указать сетевое устройство, вторым - COM-порт или наоборот? А на стороне Windows как?

★★★★★

Последнее исправление: Xintrea (всего исправлений: 3)

Ethernet-сеть через физический COM-порт

Только не ethernet. Расчехляйте pppd и ищите в интернете, как в Windows поднять PPP-соединение через нуль-модемный кабель [1, 2].

AITap ★★★★★
()
Ответ на: комментарий от AITap

Проблемка: там написано про PPP в Windows 7, а у меня Windows 10.

И непонятно что должно стоять на стороне Linux. На нем надо поднимать PPP-сервер? Но как тогда сделать Ethernet-устройство в виде PPP-сервера?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Щито?

В линуксе искаропки

slattach /dev/ttyS0
ifconfig sl0 ...

В венде что-то с названием типа SLIP Connection Manager ставишь и тоже абсолютный нуль проблем.

И там и там получаешь совершенно стандартные сетевые устройства, с которыми можно делать всё что и с обычными, связанные друг с другом через COM-COM шнурок.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 2)
Ответ на: комментарий от Xintrea

Проблемка: там написано про PPP в Windows 7, а у меня Windows 10.

У меня под рукой ссылок нет, но ключевые слова null modem PPP windows 10 рано или поздно Вам помогут.

И непонятно что должно стоять на стороне Linux. На нем надо поднимать PPP-сервер?

Достаточно запустить pppd на последовательном порту с нужными настройками. Например, вот неотвеченный вопрос, где показан пример запуска pppd.

Но как тогда сделать Ethernet-устройство в виде PPP-сервера?

Пожалуйста, не называйте его Ethernet-устройством. Ethernet - это протокол низкого уровня, поверх которого можно передавать IP-пакеты. Именно его здесь не будет, но будет весь остальной IP-стек; вместо него будет протокол PPP поверх последовательных портов. pppd сам создаст сетевой интерфейс ppp0, через который можно будет слать IP-пакеты.

С PPP и модемом в Windows 10 какая-то хрень: https://ibb.co/NLh6Hj7

«Параллельный» кабель? Может быть дело в том, что система просит LPT-порт (параллельный), а где-то ещё надо было выбрать последовательный?

Добавлено: @Stanson дело говорит. Если сможете поднять SLIP на Windows 10, попробуйте через него. Меньше будет настраивать.

AITap ★★★★★
()
Последнее исправление: AITap (всего исправлений: 1)

пробросить Ethernet-соединение через COM-порт

Мокса или их китайские аналоги? https://www.moxa.com/en/products/industrial-network-infrastructure/ethernet-switches

Когда-то, 20 лет назад, такое на цисках делали.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от AITap

«Параллельный» кабель? Может быть дело в том, что система просит LPT-порт (параллельный), а где-то ещё надо было выбрать последовательный?

Извиняюсь, не тот скриншот. Нужный COM-порт недоступен:

https://ibb.co/mybxKfH

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от vvn_black

Мокса или их китайские аналоги?

В теме написано: Из дополнительного оборудования - только шнур для соединения по COM-порту компьютер-компьютер. В терминале данный шнур работает.

Там преобразователь PL2303 чтобы по USB в Windows воткнуть и получить виртуальный COM-порт. Это из-за того, что на Windows-компе наружу только USB выведены, COM-порт не распаян, корпус опечатан.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от AITap

Я этим летом в деревне поднял сеть с помощью minimodem, pppd и голосовых раций motorola. Соединил рацию с компом проводом 3.5-2.5mm, врубил свой скрипт иии заработало! Скорость 300 бод была, потери 30%, расстояние брало километра два!

realbarmaley ★★
()
Ответ на: комментарий от realbarmaley

Извините, наврал! Я не смог полнодуплекс наладить… Там трабла была с дуплексом. Максимум что я смог сделать это посмотреть картинку через рацию…

realbarmaley ★★
()
Ответ на: комментарий от vel

+1. Ещё есть полезности в виде usb hub с сетевкой в одном флаконе, только что прикупил парочку таких.

anc ★★★★★
()
Ответ на: комментарий от Dark_SavanT

man slip man pppd

Вот я тебя не понимаю. Slip без pppd не заработает? Или можно крутить slip, и как альтернативу - pppd?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от realbarmaley

Почитайте мануал, там много интересных опций, можно с настройками игратся до бесконечности! Там даже аутентификацию можно настроить при желании.

realbarmaley ★★
()
Ответ на: комментарий от Stanson

В венде что-то с названием типа SLIP Connection Manager ставишь и тоже абсолютный нуль проблем.

И там и там получаешь совершенно стандартные сетевые устройства, с которыми можно делать всё что и с обычными, связанные друг с другом через COM-COM шнурок.

Это был бы идеальный вариант.

Но проблема в том, что в Windows 10 нет рабочей реализации SLIP-протокола, ни опенсорчной, ни проприетарной.

Единственная программулина которую я нашел: https://slip-connection-manager.software.informer.com/download/ , она древняя как мамонт и не устанавливается под Windows 10, даже при наличии NET-фреймверка 2.0 которую он требует для своей работы. В сети гуляет версия 1.0, и вроде как была еще версия 1.2, но ее нигде нет.

Если ты мне скажешь где найти рабочую реализацию SLIP for Windows 10, я буду пробовать этот протокол. Иначе смысла тратить время на его конфигурирование нет.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Когда мне понадобилось - я минут за 5 на каких-то западных торрентах нашёл всё что мне было нужно без малейших проблем. Что мешает это повторить сегодня я что-то не очень понимаю.

Stanson ★★★★★
()
Ответ на: комментарий от anc

cygwin не подойдет?

Если в Win 10 заработает, то подойдет. А какую утилиту ты имеешь в виду?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от anc

Ищу в google и yandex:

«slattach cygwin windows 10»

И в ответ на всех страницах «Не найдено: slattach». Вот вообще на всех.

Сборка slattach под cygwin вообще существует?

Xintrea ★★★★★
() автор топика

Сколько длина провода между компами?

Cколько проводов в кабеле com-com?

vel ★★★★★
()

в винде ppp единственный рабочий вариант

Rost ★★★★★
()
Ответ на: комментарий от vel

Сколько длина провода между компами?

2 метра.

Cколько проводов в кабеле com-com?

DTE-DTE, 7 проводов, 1 перемычка, схема с квитированием. Вот здесь третья схема:

https://webhamster.ru/mytetrashare/index/mtb0/1648031514shn7rm0vul

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

Под оффтопик только ppp рабочий вариант, осталось только найти «драйвер нуль-модема», который нужно подклчють к сом-порту. Этот драйвер просто inf-файл. Так что, возможно, его можно взять от старых версий оффтопика. нуль-модем отличался от нормального модема отсутствием команд инициализации и возможностью набора номера.

В 10-м оффтопике все перепрятано относительно предыдущих систем (подключение к wifi wpa спрятано очень глубоко и абсолютно нелогично).

PS на оффтопик поставить виртулизацию и запустить linux в котором ppp работает без таких сложностей :)

PPS на двух метрах такого кабеля будет замечательно работать 10Мбит ethernet :) нужны только 2 пары (rx-tx и cts-rts).

vel ★★★★★
()
Ответ на: комментарий от Xintrea

Утверждается, что в первых сборках оффтопик10 (17хх) была возможность подключить ppp через нуль-модем.

Драйвер нужно было доустановить из центра обновления(?).

Я бы со стороны linux изобразил модем откликающийся на АТ команды инициализации, идентификации и попытки набрать номер (через expect), а на оффтопике поставил какой-нибудь us-robotics :)

vel ★★★★★
()
Ответ на: комментарий от vel

Я бы со стороны linux изобразил модем откликающийся на АТ команды инициализации, идентификации и попытки набрать номер (через expect), а на оффтопике поставил какой-нибудь us-robotics :)

Предлагаю сразу радикальное решение, купить два мопеда для прямых проводов, из плюсов: девайсы можно будет разносить на километры, из минусов: 2400 онлу :)

anc ★★★★★
()

Ethernet-соединение через COM-порт.

Так всё же, надо что? Два компьютера по TCP/IP связать, или именно Ethernet для целей, с TCP/IP не связанных? Если про TCP/IP, то эти вот названные SLIP и PPP - это правильные подсказки, но если надо прямо вот Ehernet, то придётся что-то городить.

AS ★★★★★
()
Ответ на: комментарий от AS

Так всё же, надо что?

Надо чтобы два компьютера увидели друг друга «как будто по сети». Чтобы один мог пинговать другой по IP-адресу и наоборот.

Как это будет реализовано - совершенно неважно. Главное что бы все сетевые утилиты работали через это соединение, думая что это обычное сетевое соединение.

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от vel

Я бы со стороны linux изобразил модем откликающийся на АТ команды инициализации, идентификации и попытки набрать номер (через expect), а на оффтопике поставил какой-нибудь us-robotics

Ну а дальше что? Предположим, Windows-компьютер будет воспринимать Linux-компьютер как AT-модем. Windows можно настроить на PPPoE. Но что делать на стороне Linux? Как создать виртуальное сетевое устройство, которое будет щупать COM-порт параллельно с эмулятором AT-команд, и эмулировать сетевые функции этого устройства? Это за гранью моего понимания.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от vel

Я бы со стороны linux изобразил модем откликающийся на АТ команды инициализации, идентификации и попытки набрать номер (через expect), а на оффтопике поставил какой-нибудь us-robotics :)

Зачем? Это вообще не в тему, хотя и близко.

AS ★★★★★
()
Ответ на: комментарий от anc

Предлагаю сразу радикальное решение, купить два мопеда для прямых проводов, из плюсов: девайсы можно будет разносить на километры, из минусов: 2400 онлу :)

Zelax M-115 даст 115. :-) Кстати, можно поискать инструкции по соединению через него, они должны для нуль-модема подойти. Вопрос только, есть ли они для Win10.

Вот тут для Win9 есть: https://www.zelax.ru/products/modems/admt-modem-m-115d/

Хотя этот момдем и AT-команды умеет, старый M-115 не умел. В общем, считаем, что в dumb-режиме.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 2)
Ответ на: комментарий от Xintrea

На линуксе все просто. после того как expect отработает ATD-CONNECT запускается pppd, который уже обеспечивает ip.

На все остальные АТ-команды отвечаем ОК

Но, возможно, найти драйвер нуль-модемного соединения проще...

PPPoE при чем тут?

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)

Phone and Modem -> Modems -> Add… -> [×] Don't detect my modem -> (Standard Modem Types) -> Communications cable between two computers -> нужный компорт, затем настройка PPP.

В чем проблема?

Кстати, недавно обзавёлся материнкой с аппаратным компортом и собираюсь купить разъемы, так что могу сам проверить.

token_polyak ★★★★★
()
Последнее исправление: token_polyak (всего исправлений: 2)
Ответ на: комментарий от AS

Zelax M-115 даст 115

Сначала хотел написать «до чего техника дошла», но потом сходил по ссылке, точно же для банкоматов пользовали нечто подобное. Банкам проще у них с линиями меньше гемороя. У нас условия исключительно спартанские были, только наши(российское изобретение) на 2400 и тянули. :)

anc ★★★★★
()

Докладываю про успех: на стороне Линукса - ppp с простейшими настройками:

/etc/ppp/options
---
asyncmap 0
auth
lock
hide-password
-detach
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
noipx

(половина из которых не имеют значения, nodetach для траблшутинга)

В chap-secrets прописан пользователь, пароль и айпишник. Можно любой, в моем случае были в совсем разных подсетях, но успешно общались после одключения эзернета.

Затем pppd ttyS0 115200. По идее можно перезапускать скриптом или через systemd.

На стороне винды - добавлен модем «Последовательный кабель», выбран порт COM3 (тоже Prolific). Затем добавлено соединение dial-up через этот модем. Телефонный номер от балды, имя пользователя и пароль, далее винда проверяет работу соединения, пытаясь выйти в интернет - можно пересечь эти безуспешные попытки, затем просто подключиться и пользоваться.

Отсутствие порта в списке очень и очень странно. Можно попытаться поменять номер, например.

token_polyak ★★★★★
()
Ответ на: комментарий от token_polyak

Или лучше удалить, пока переходник подключен, с удалением драйверов, перезагрузиться (в этим я не уверен) и подключить обратно.

token_polyak ★★★★★
()
Ответ на: комментарий от vel

Но, возможно, найти драйвер нуль-модемного соединения проще...

Он вроде как есть. Во всяком случае «Соединение по последовательному порту» - это оно?

PPPoE при чем тут?

При том что в поисках соединения PPP находится только настройка соединения по PPPoE. Я понимаю, что это совсем не то, никакого over Ethernet в данном случае не нужно. Но просто соединения PPP в Win 10 найти не могу. Точнее, соединение PPP есть, но тыкаешь на него, и открывается настройка PPPoE. Я в этих виндовых интерфейсах ничего не соображаю.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Во всяком случае «Соединение по последовательному порту» - это оно?

Оно. Причем не нужно даже прикидываться модемом.

Точнее, соединение PPP есть, но тыкаешь на него, и открывается настройка PPPoE. Я в этих виндовых интерфейсах ничего не соображаю.

«Set up a dial-up connection» vs «Set up a broadband connection».

token_polyak ★★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.