LinuxではTCPトンネルを特殊文字デバイスとして公開できますか?

LinuxではTCPトンネルを特殊文字デバイスとして公開できますか?

QNXのドキュメントでは、シリアルデバイス()を使用して別の物理システム上のプロセス間でメッセージベースのIPCを設定できることがわかりましたdev/serX

LinuxでTCP / UDPトンネリング用のシステム全体の特別なデバイスを作成することは可能ですか? stdin/stdout のようなものはnc/dev/something の下に公に公開されます。

最終的には、あるコンピュータでそのようなファイルに何かを書き、もう一方の端でそれを受け取ることを望みます。たとえば、次のようになります。

#machine1:
echo "Hello" > /dev/somedev

#machine2:
cat < /dev/somedev

私はmanを見ましたが、ncstdio以外のioソース/ターゲットを指定するオプションが見つかりませんでした。

ベストアンサー1

socat「ストリーム」のようなものを使用すると、この操作と他の多くのことを実行できます。

この基本的なアイデアを使用すると、次のことを行うことができます。

Machine1$ socat tcp-l:54321,reuseaddr,fork pty,link=/tmp/netchardev,waitslave

Machine2$ socat pty,link=/tmp/netchardev,waitslave tcp:machine1:54321

(で適応サンプルページ)

暗号化したい場合は、ssl-l:54321,reuseaddr,cert=server.pem,cafile=client.crt,forkmachine1でバリアントを使用でき、ssl:server-host:1443,cert=client.pem,cafile=server.crtmachine2ではこのようなものを使用できます。

(詳細はソカートSSL)

おすすめ記事