gpt4 book ai didi

tcp - Socat:在双向隧道中运行脚本

转载 作者:可可西里 更新时间:2023-11-01 02:51:01 30 4
gpt4 key购买 nike

我正在运行这样的隧道:

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

我想运行一个脚本来执行带有通过隧道的字符串的代码。

脚本不改变字符串,只独立处理字符串,但允许两端之间不改变的传递。

这可能吗?

最佳答案

您甚至应该能够使用这种方法改变通信方式:

准备一个帮助程序脚本 helper.sh 为每个连接执行:

#!/bin/bash

./inFilter.sh | socat - TCP:192.168.1.3:9090 | ./outFilter.sh

然后开始使用:

socat TCP-LISTEN:9090,fork EXEC:"./helper.sh"

脚本 inFilter.shoutFilter.sh 正在处理通信的客户端和服务器部分。

示例 inFilter.sh:

#!/bin/bash

while read -r l ; do echo "IN(${l})" ; done

示例 outFilter.sh:

#!/bin/bash

while read -r l ; do echo "OUT(${l})" ; done

此方法适用于基于行的文本通信(因为几乎所有内容都是 line-buffered )。

为了使其适用于使用 stdbuf -i0 -o0 包装所有进程的二进制协议(protocol)可能会有所帮助(请参阅 here ),在这种情况下摆脱 shell 可能是个好主意。

祝你好运!

关于tcp - Socat:在双向隧道中运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39723379/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com