如何通过网络或串口将数据传输到另一台 Linux 机器的显示器上?

如何通过网络或串口将数据传输到另一台 Linux 机器的显示器上?

我有第二个监视器,我想将其用于基于文本的调试日志和/或控制台。我不想将它作为我的 GUI/“桌面”/主系统的一部分。

我将此显示器连接到一个没有太多处理能力的旧 Linux 盒子上。当它启动时,它会根据login:提示做好准备。

它已连接到 LAN,因此我可以通过 SSH 连接到它。我知道我可以通过运行类似的东西来写入屏幕ssh root@ancient echo test \> /dev/tty0

我喜欢使用命名管道进行调试,基本上是创建一个命名管道,mkfifo然后tail -f在从其他命令/脚本/等向其写入数据时使用它。

基于对我正在尝试做的事情的解释,什么是做我正在尝试做的事情的“好”/“正确”方法(将数据“转储”到网络上的命名管道,以便输出出现在该终端的屏幕上?)

我知道我可以通过类似 - 的方式访问sshtail、 netcat ( nc) 和重定向,/dev/tty0但我不太清楚如何将它们雄辩地组合在一起。我确实看到了这个:我可以通过 netcat 传输/重定向控制台应用程序以便远程使用它吗?

使用类似的东西ssh root@ancient echo test \> /dev/tty0并为发送的每个日志项创建一个新连接似乎很黑客。

如果数据不是以纯文本形式通过网络发送,则有一个好处,但我认为,如果它使事情变得非常慢或产生太多开销或复杂性,则该标准不是强制性的。

另外,在两台机器之间使用串行连接会有什么优势吗?

我过去曾这样做过,但在我看来,即使在115,200发送几百行代码的最大波特率下,与通过网络发送数据相比,它也显得“滞后”。我知道115k这是旧的“调制解调器技术”,所以我只是想知道这种类型的直接(尽管是串行)连接的这种比预期慢的体验是否正常。

答案1

我的脑海中浮现出netcat;对于低规格接收机器来说,这可能是更明智的选择(考虑到网络通信的无开销、无压缩方法)。

可以在这里找到一个很好的用法示例:
https://stackoverflow.com/questions/4113986/example-of-using-named-pipes-in-linux-bash

答案2

您可以使用tail -f您习惯的方式,通过管道将其ssh连接到另一台计算机:

tail -f fifo | ssh root@ancient cat \> /dev/tty0

cat > /dev/tty0在另一侧运行,这会将其输入回显到终端上。ssh会将输出传递到网络tail的标准输入中。cat所有数据在传输过程中均完全加密

串行连接可以工作,但除非其中一台机器非常弱,否则ssh网络流量和开销可以忽略不计。

答案3

使用应该足够了

cat > /dev/udp/ancient/12345

在一台机器上并且

nc -lu 12345

在另一。如果您想使用 TCP 来提高可靠性,只需在重定向中删除该-u选项nc并替换/udp//tcp

相关内容