* Originally in ru.modem
* Crossposted in ru.linux
Hello, Dmitry!
Wednesday September 24 2025 13:15, from Dmitry Chernykh -> All:
Есть допустим настоящая телефонная линия; К этой линии подключается
модем; Модем подключается к какой-то коробочке, которая передаёт весь поток данных с модема на удалённый комп через интернет(через несколько NAT-ов)? Hа удалённом компе допустим должен работать терминал по
телнет или удалённый модем должен видется как локальный подключенный квиртуальному ком порту.
В теории, на Линуксе это можно сделать вот так.
а стороне сервера, куда подключён модем: socat -d -d TCP-LISTEN:7000,reuseaddr,fork FILE:/dev/ttyS0,raw,echo=0
а клиенте, т.е. удалённом компе, куда мы ходим пробросить модем: socat -d -d PTY,link=/dev/ttyV0,raw,echo=0 TCP:server_ip:7000
Фсё, на удалённом компе хоть mgetty вешай на /dev/ttyV0
Чтобы трафик был шифрованным, то обернуть в ssh-туннель
ssh -L 7000:localhost:7000 user@modem-host
Ещё ИИ подсказывает, что есть варианты - ser2net и какой-нибудь remserial/socat.
Конфиг /etc/ser2net.conf или /etc/ser2net.yaml
7000:raw:0:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT
а клиенте
socat -d -d PTY,link=/dev/ttyV0,raw,echo=0 TCP:server_ip:7000
или
remserial -r server_ip -p 7000 -l /dev/ttyV0
Ещё ИИ подсказывает, что можно по-взрослому RFC 2217: Telnet Com Port Control Option организовать, ser2net v3+ так умеет, ser2net.yaml
connection: &modem
accepter: tcp,7000
connector: serialdev,/dev/ttyS0,baud=9600,local
options:
rfc2217: true
а клиенте socat или pyserial с поддержкой RFC2217.
Ещё ИИ подсказывает, что есть ядерный модуль tty0tty или nserial, чтобы создавать виртуальные компорты.
modprobe tty0tty
# Connect /dev/tnt0 to remote modem
socat /dev/tnt0 TCP:server_ip:7000
Best Regards, Nil
--- GoldED+/LNX 1.1.5-b20240306
* Origin: ChatGPT can make mistakes. Check important info. (2:5015/46)