我使用的socat
Linux 系统连接到两个物理上独立的私有网络,因此一个网络上的 TightVNC 客户端可以访问另一个网络上的 TightVNC 服务器。目前,socat
允许一个连接,然后终止,正如预期的那样。
我对“多重连接”的文档/描述感到困惑,因为我无法确定我所看到的内容是否允许同时建立多个连接(即,对我来说很糟糕)或是否允许一个接一个地建立多个连接而无需终止和重新启动程序(即,我想要的)。
我希望我已经充分描述了我的困惑,以便这里的专家能够帮助我。我无法想出一个谷歌搜索查询,除了带有短语的文档之外,我找不到任何东西,例如“...允许使用 socat 进行多个连接...”,但他们似乎从未说明他们谈论的是两种多连接“模式”中的哪一种。
如果有任何用处,这是我的一个命令(除了端口和地址之外,其他命令都相同):
sudo -b socat TCP-LISTEN:5900 TCP:192.168.1.10:5900
如果socat
无法自行执行此操作,是否有一个 Linux 程序可以帮助我socat
在它退出时重新启动它?
我当前的解决方法是使用这个 shell 脚本:
#!/bin/sh
(while true; do
sudo socat TCP4-LISTEN:5901 TCP4:192.168.1.2:5900
done) &
这很有效,但可能很难停止当我完成它时。我希望socat
能够被指示[有效地]开始本身传入连接关闭后结束。
哦,我是从 Stack Overflow 的网络工程网站转到这里的,因为他们不回答这类问题。
答案1
您可以尝试将 Socats fork 选项与 max-children 选项结合起来:
sudo -b socat TCP-LISTEN:5900,fork,max-children=1 TCP:192.168.1.10:5900
仅当活跃子进程少于 1 个时它才会继续接受连接。