隧道中的 Socat 执行脚本

隧道中的 Socat 执行脚本

我正在运行这样的隧道:

socat TCP-LISTEN:9090,fork TCP:192.168.1.3:9090

我想运行一个脚本来执行代码,其中字符串穿过隧道。

该脚本不会更改字符串,仅独立处理字符串,但允许在两端之间不更改的情况下通过。

这可能吗?

答案1

它是现在可能与 socat v2. socat v2 引入了以下想法地址链。您可以使用以下命令运行脚本EXEC:stdin/stdout(文件描述符 0 和 1)连接到侦听套接字,文件描述符 3 和 4 连接到发送套接字:

socat - "TCP-LISTEN:localhost:8000 | EXEC:myscript.sh | TCP:myserver:80"

在示例 myscript.sh 中:

  • stdin(fd 0) - 从端口 8000 读取数据
  • stdout(fd 1) - 将数据写入端口 8000
  • fd 3 - 从 myserver 端口 80 读取数据
  • fd 4 - 将数据写入 myserver 端口 80

相关内容