终端回显原理及好用的串口分离工具和端口转发命令

终端回显原理

Linux等终端,特别是串口连接的时候,物理上就是uart口和电脑相连,能做到这么好的交互体验,完全是终端协议的功劳。
裸机串口只能收发数据,而Linux内核里内置了终端模式,你敲击的每个字符都会原封不动的发回给你,当前敲回车时还会给你发如root@/root类似的提示符,而且不只是可以显示的字符,还有一些终端用来控制颜色、缩进等的控制字符,,而你的客户端工具也是支持终端协议的,会处理回显,打印颜色等;回显可以用下面的串口分离工具的shared.port进行测试;打开共享端口两次,在一个窗口输入的命令会同步显示在另外一个窗口

ssh由于网络时延的问题,并不会给你发回你输入的数据,而是客户端自己处理回显,所有打完敲回车才会发送;

免费好用的终端分离工具

免费版
在这里插入图片描述

shareed port 可以将一个串口映射为一个新串口,这个新串口可以多次打开。再加上终端自自动发送回显,你在一个终端的输入输出可以完整的显示在另外一个终端窗口

烧录阶段还是需要禁止多次打开的,在打开的终端上敲几下就会导致烧录进去错误数据

还可以映射到tcp 网口,甚至可以作为一个串口服务器(可能需要付费版)

这系列创建的工具,虚拟终端对默认数据线都是null数据,所以部分监控工具检测到一对0;而且绑定到虚拟机也不能直接用,不如vspd创建的好用,应该是需要配置下硬件参数;但是作为分离或分享工具还是很好用的

端口转工具socat 、 nc 、ssh -L -R -----未经测试—待实验

ssh -L -R 加密转发 tcp协议

#吧远程端口映射到本地
ssh -L 8080:localhost:12345 192.168.1.100
#把本地端口转发到远程
ssh -R 9000:localhost:5000 192.168.1.100

socat:任意两个数据流(TCP/UDP/UNIX 域套接字 / 串口 / 文件等)互通,支持协议转换、加密、代理;无默认安全,需配合 SSH/SSL 用。

# 本地监听8080 透明转发到 远程
socat TCP-LISTEN:8080,fork TCP:192.168.1.100:3000

# socat + SSH:安全+灵活结合
# 本地 socat 监听 8080,通过 SSH 隧道转发到远程 3000
socat TCP-LISTEN:8080,fork EXEC:"ssh 192.168.1.100 socat STDIO TCP:192.168.1.100:3000"

socat TCP-LISTEN:8080,fork,reuseaddr TCP:192.168.1.100:3000
#fork:支持多个连接
#reuseaddr:端口崩了能立刻重启,不用等释放

nc 是简单一次性管道,socat 是全能加强版 nc;
nc 只能简单通一次,socat 能持续监听、自动 fork、支持各种协议、各种设备转发。
下面用最直白、不绕弯的方式对比。
核心区别:
nc (netcat):简单 TCP/UDP 工具,一次只能一个连接,用完就断。
socat:全能双向数据转发,支持多连接、持续监听、协议转换、设备转发,几乎什么都能拼。

# UDP 端口转发(nc 做不到) #比如转发 DNS、游戏、语音流量。
socat UDP-LISTEN:53,fork UDP:8.8.8.8:53
#把串口转成网络端口(调试神器) 远程就能用 telnet/netcat 连串口设备。
socat TCP-LISTEN:2323,fork FILE:/dev/ttyUSB0,raw,echo=0
# 本地 UNIX 套接字 ↔ TCP 互转 Docker、PHP-FPM、Nginx 常用
socat TCP-LISTEN:8080,fork UNIX-LISTEN:/run/my.sock
#简单模拟弱网(加延迟、丢包)
socat TCP-LISTEN:8080,fork TCP:192.168.1.100:3000,linger=500ms

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值