我正在用netcat代理VNC TCP服务器端口。代理计算机运行linux。
这是我使用的命令:
mkfifo backpipe
nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe
10.1.1.116是“远程”计算机,原始VNC服务在端口5902上运行。执行此命令后,本地计算机上的VNC服务可用于其他计算机。
但是在每个VNC会话之后,netcat“代理服务器”都会停止,这就是netcat的工作方式。
VNC会话终止后,如何使netcat保持“代理服务”运行?
解决方法是将netcat命令行置于无限循环中:
mkfifo backpipe
while true; do nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe; done
但是我更喜欢一个“官方的” netcat解决方案,它根本不会中断服务。
我已经阅读了有关“-”参数的信息,但是不确定是否适合这种情况,并且我还无法正确应用它。
附加说明:
当然,我可以通过ssh隧道以不同的方式来做到这一点,但是我想要一个没有加密开销的解决方案,以使其对VNC客户端尽可能地敏感。否则,可以使用其他代理解决方案。
客户端必须是VNC,不可能有其他协议。