/etc/servicesテーブルでどのフィールドをキーとして使用できますか?

/etc/servicesテーブルでどのフィールドをキーとして使用できますか?

では、/etc/servicesサービス名は複数のペア(転送プロトコル、ポート番号)を持つことができます。たとえば、Linuxプログラミングインタフェースは次のように言います。

/ etc / servicesファイルは、次の例に示すように、3つの列を含む行で構成されています。

# Service name  port/protocol  [aliases]

http            80/tcp                  # Hypertext Transfer Protocol
http            80/udp
ssh             22/tcp                  # Secure Shell
ssh             22/udp
telnet          23/tcp                  # Telnet
telnet          23/udp
smtp            25/tcp                  # Simple Mail Transfer Protocol
smtp            25/udp

テーブルでキーとして機能できるフィールドは何ですか?

この例は、サービス名が複数のトランスポートプロトコルに対応できることを示しています。

サービス名とトランスポートプロトコルが与えられた場合、複数のポート番号に対応できますか?つまり、サービスは同じトランスポートプロトコルの両方のポートでリッスンできますか?

ありがとうございます。

答え1

このファイルは以下に説明されています。services(5)マンページ、そしてその使い方関連機能のマニュアルページ。後者は次のことを示します。期待が重要です:

  • 名前と契約
  • ポート番号とプロトコル。

サービスにはエイリアスがあります(例では説明しません)。wwwたとえば、通常は次のエイリアスですhttp

http            80/tcp          www             # WorldWideWeb HTTP

どのサービスについてできるマッピングのみ/etc/servicesを提供し、何も制限しません。したがって、TCPによって要求された人には、割り当てられたhttpポートが80であるというメッセージが表示されますが、HTTPデーモンは任意のポートでリッスンできます(許可されています)。同様に、TCPがポート80を要求している人にとって、その名前は次のとおりですhttp。ただし、これがポート80でリッスンするサーバーがHTTPサーバーでなければならないという意味ではありません。さらに、単一のプロセスは複数のポートでリッスンすることができ、BSDとLinuxでは、カーネル3.9以降、複数のプロセスが同じポートでリッスンできます。

関連情報