netcatでVNC TCPサーバーポートをプロキシしています。プロキシマシンはLinuxを実行します。
これは私が使用するコマンドです:
mkfifo backpipe
nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe
10.1.1.116は、ポート5902で実行されている元のVNCサービスを持つ「リモート」マシンです。このコマンドの後、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である必要があり、他のプロトコルは使用できません。