用于日志记录的 TCP 连接桥/代理

用于日志记录的 TCP 连接桥/代理

简化的场景:

我有一个电话系统,它可以注销端口 6543 上的每个操作。我还有一个监听器(现有应用程序),它连接到电话系统(一个 Linux 机顶盒)并处理来自该电话系统的所有数据(字节流)。电话系统每次只能有一个连接。

我需要的:

一种连接到电话系统并将字节流转储到文件的方法,并让监听器应用程序(我无法控制但可以配置 IP 和它将连接到的端口)连接到我的进程,以便它像直接连接到电话系统一样工作。

我想做的事:

  1. 连接到电话系统并将数据转储到文件中(使用我希望您建议的“实用程序”)。
  2. 允许监听器进程连接到“实用程序”,以便它可以连续地继续正常工作。

一定有什么巧妙的办法是我无法想到/知道的来做到这一点?

我所说的“实用程序”可以是 bash 脚本、un*x 实用程序、一些聪明的 gnu 工具、任何现有的 github 项目等等。

答案1

以下是我目前发现的内容:
(netcat 也许就是我所寻找的!)

mkfifo phonesystem.fifo

脚本 :

#!/bin/bash
PHONE_IP=192.168.167.166
PHONE_PORT=6543
LISTENING_PORT=${PHONE_PORT}
CURRENT=$(date +%F#%T | sed -e 's/:/./g')

cat phonesystem.fifo | nc -l -p ${LISTENING_PORT} | tee ${CURRENT}.ApplicationListener.log | nc ${PHONE_IP} ${PHONE_PORT} | tee ${CURRENT}.PhoneSystem.log 1> phonesystem.fifo

然后,我将配置我的“监听器应用程序”来连接到端口上的盒子 IP,6543而不是将其连接到端口上的电话系统 IP 6543...

想知道我是否可以多路复用输出,以便我可以多次连接到我的盒子并获取所有连接的流......

相关内容