Nп/п : 80 из 100
 От   : Nil A                               2:5015/46         27 сен 25 05:56:58
 К    : Dmitry Chernykh                                       27 сен 25 06:08:01
 Тема : Пробросить модем на удалённый хост, чтобы был там как /dev/tty...      
----------------------------------------------------------------------------------
                                                                                 
@MSGID: 2:5015/46 68d754c9
@REPLY: 2:5023/24.4034 68d3c80e
@CHRS: CP866 2
@TZUTC: 0300
@TID: hpt/lnx 1.9 
* Originally in ru.modem
* Crossposted in ru.linux
Hello, Dmitry!
Wednesday September 24 2025 13:15, from Dmitry Chernykh -> All:
 DC> Есть допустим настоящая телефонная линия; К этой линии подключается
 DC> модем; Модем подключается к какой-то коробочке, которая передаёт весь
 DC> поток данных с модема на удалённый комп через интернет(через несколько
 DC> NAT-ов)? Hа удалённом компе допустим должен работать терминал по
 DC> телнет или удалённый модем должен видется как локальный подключенный
 DC> квиртуальному ком порту.
В теории, на Линуксе это можно сделать вот так.
 На стороне сервера, куда подключён модем: 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)
 SEEN-BY: 46/49 50/109 104/117 221/6 240/1120 301/1
341/66 450/1024 452/28
 SEEN-BY: 455/19 460/58 463/68 5000/111 5001/100
5010/352 5015/42 46 120 255
 SEEN-BY: 5015/519 5019/40 400 5020/101 113 545 620
715 830 846 848 1042 2992
 SEEN-BY: 5020/4441 12000 5022/128 5030/49 115 500
1081 1474 1900 5050/151
 SEEN-BY: 5053/51 58 5054/89 5058/104 5059/37
5060/900 5061/133 5083/1 444
SEEN-BY: 6035/4 6078/80 6090/1
@PATH: 5015/46 5020/1042 4441