Linuxでは、ポートはオペレーティングシステムで実行中のサービスに関連付けられている論理通信エンドポイントです。ポートはオペレーティングシステムによって完全に管理され、各ポートは特定のサービスに関連付けられています。ポートは、管理者がシステムで実行されているサービスを識別するのに役立ちます。
通常、各ポートには番号が割り当てられます。ポート番号の範囲は0〜65535です。1024未満のポートは、特権ポートと呼ばれます。 特別なプロトコルに使用されます。たとえば、Webトラフィック(HTTP)はポート80を通過し、SSHはポート22をリッスンします。1024を超えるポートは非特権と呼ばれます。 ポートであり、テスト目的で使用できます。たとえば、デフォルトのポート番号ではなく、これらのポートの1つで実行するようにWebサーバーを構成できます。
このガイドでは、Linuxのどのプロセスがどのポートでリッスンしているかを確認する方法に焦点を当てます。デモの目的でUbuntu20.04を使用しました。
netstatLinuxコマンドの使用
Linux Netstatコマンドは、ネットワークと統計という言葉のかばん語です。ご想像のとおり、これはLinuxシステムでネットワークとプロトコルの統計を表示するためのコマンドラインユーティリティです。さらに、ルーティングテーブル、TCPおよびUDPエンドポイントのステータス、およびネットワークインターフェイスに関する情報を印刷できます。
特定のポートをリッスンしているプロセスを表示するには、次の構文を使用します。
# netstat -pnltu | grep -w port_number
オプションのリストを分解してみましょう:
p –プロセス名とIDを表示します
n –ポートアドレスを表示します
l –リスニングソケットのみを一覧表示します
t –TCP接続を出力します
u –UDP接続を出力します
以下の例では、ポート80でリッスンしているサービスをプローブしています。
# netstat -pnltu | grep -w 80
出力は、ポート80でリッスンしているのはApacheWebサーバーサービスであることを示しています。
ポート3306でリッスンしているサービスを確認するには:実行:
# netstat -pnltu | grep -w 3306
lsofコマンドの使用
List Open Filesの頭字語であるlsofコマンドは、開いているファイルとディレクトリを表示するために使用されるコマンドです。 -iを使用 オプションの場合、特定のポートをリッスンしているサービスを明らかにすることができます。
以下の例では、SSH(セキュアシェル)サービスであるTCPポート22をリッスンしているサービスを検索しています。
# lsof -i TCP:22
フューザーコマンドの使用
最後に、fuserコマンドがあります。フューザーユーティリティは、ソケット、ファイル、またはディレクトリを使用してプロセスを見つけるために使用されるスマートなコマンドラインツールです。また、プロセスのタイプ、各プロセスのPID、プロセスを所有するユーザーの表示など、多くのことを行います。
フューザーを使用してポートをリッスンしているサービスを見つけるには、まず、示されているようにプロセスのPIDを見つけます。
# fuser 22/tcp
その後、続行してpsコマンドを呼び出し、サービスの名前を表示します。 34093に注意してください 前のコマンドから取得したプロセスのPIDです
# ps -p 34093 -o comm=
結論
Linuxシステムの特定のポートをリッスンしているプロセスを明らかにするために使用できる3つの方法を示しました。これで問題なく実行できることを願っています。