【发布时间】:2021-07-21 04:29:47
【问题描述】:
我正在尝试设置一个 shell 脚本来侦听端口,转发到 n 个不同的 IP 地址,并返回其中一个 API 调用的结果。
如果我有一个 IP 地址,解决方案很简单
socat TCP4-LISTEN:8080,fork,reuseaddr,crlf tcp4:127.0.0.1:8000
REST API 在端口 8000 上,而我正在侦听端口 8080。
对于多 IP 的情况,我似乎需要以某种身份使用 tee 来拆分为多个 API 调用,例如:
socat TCP4-LISTEN:8080,fork,reuseaddr,crlf - | tee \
>(socat - tcp4:127.0.0.1:8000 | cat; echo "This ends") \
>(socat - tcp4:127.0.0.1:8000 | cat; echo "This ends too")
>/dev/null
虽然我能够从内部打印出 API 调用并且内部 socat 调用终止(因为在端口 8080 上进行调用时 This ends 和 This ends too 都被打印),但外部 socat调用不返回任何内容。有没有办法为外部 socat 返回其中一个 tee 值?
【问题讨论】: