/dev/tcp/host/port, /dev/udp/host/port これはどのカーネルモジュールですか?

/dev/tcp/host/port, /dev/udp/host/port これはどのカーネルモジュールですか?

私はbash(1)のマニュアルページでこれを見つけました。このインターフェイスを提供するオペレーティングシステムまたはカーネルモジュールはありますか?私のDebianインストールでこれを試しましたが、デバイスはありません。

ありがとう

      /dev/tcp/host/port
             If host is a valid hostname or Internet address, and port is an integer  port  number  or  service
             name, bash attempts to open the corresponding TCP socket.
      /dev/udp/host/port
             If  host  is  a  valid hostname or Internet address, and port is an integer port number or service
             name, bash attempts to open the corresponding UDP socket.

解決策/回答:これは機能し、シェルの機能です。テストするには:

$ nc -l -p 5555

echo Hello > /dev/tcp/localhost/5555

$ nc -l -p 5555
Hello

とても素敵です。

ベストアンサー1

Jeffが言ったように、これは関数です。Bashによって実装されました、カーネルではありません。これはシェルスクリプトまたはシェルコマンドラインでのみ機能し、他のプログラムでは開くことはできません/dev/tcp/...

これをカーネルモジュールとして実装するには、新しい仮想ファイルシステムを提供する必要があります。

実際に動作する様子を見るには、Bashとnetcatを組み合わせてください。走る

nc -l -p 5555

ターミナルでは

echo Hello > /dev/tcp/localhost/5555

一方、実行中の端末に「Hello」と表示されますnc

おすすめ記事