次のコマンドの私の理解は次のとおりです。
tcpdump -i any -nn port X
tcpdump
-> パケットキャプチャサービスを開始します。-i any
->すべて/すべてのインターフェイスで。-nn
->ホストアドレスを名前(DNS検索を避けるため)またはプロトコルとポート番号に変換しないでください。port X
->このルールをポートXに適用する
上記が正しいと仮定すると、このコマンドは、ポート(プロセスの論理エンドポイント)Xが、利用可能なすべてのインターフェイスを使用して他のプロセス/デバイスなどと通信できることを意味するようです。このtcpダンプは、利用可能なすべてのパケットからすべてのパケットをキャプチャします。インターフェース。
特定のポート(コマンド?)に対して利用可能なすべてのインターフェイスのリストを表示する方法はありますか?
答え1
ポート番号はTCPおよびUDPパケットヘッダの一部であり、使用されるポート番号は通信に使用される物理インターフェイスとほぼ直交します。 (一方、インターフェイスはIPアドレスにバインドされることが多いですが、必ずしも必要ではありません。)
1つのアプリケーションを単一のIPアドレス/インターフェースにバインドすることができ、その後、同じポート番号を使用して2つのアプリケーションを異なるIPアドレスにバインドすることができます。あるいは、個々のアプリケーションがそれぞれ異なるインターフェイスにバインドされ、すべてのインターフェイスで同じポート番号を使用できます。または他のものを使用してください。ポート番号とインターフェイスは異なるレイヤに存在するため、特定のインターフェイスでどのポートを使用できるかについて制限はありません。
また、TCPとUDPの両方に1(0)から65535の間のポート番号がありますが、数値スペースは異なります。あるアプリケーションはTCPポート1234を使用でき、他のアプリケーションはUDPポート1234を使用できます。
用語に関して、ポートがインターフェースを「使用する」、またはインターフェースが特定のポートで「使用可能」であると言うことは意味がない。ポート番号は単なる識別子であり、何も「実行」しません。
最後の文もポートとコマンドを混同しているように見えますが、少し不正確です。多くのアプリケーションにはよく知られているポート(SSHはTCP / 22を使用し、HTTPはTCP / 80を使用するなど)がありますが、これを強制することはありません。ポート2222でSSHサーバーを実行し、ポート22でまったく異なるサーバーを実行できます。