ウェブサイト検索

ポートでリッスンしている Linux プロセスを見つける 3 つの方法


ポートは、通信のエンドポイントを表す論理エンティティであり、オペレーティング システムの特定のプロセスまたはサービスに関連付けられています。前回の記事では、Linux で開いているすべてのポートのリストを確認する方法と、Netcat コマンドを使用してリモート ポートが到達可能かどうかを確認する方法を説明しました。

この短いガイドでは、Linux の特定のポートでリッスンしているプロセス/サービスを見つけるさまざまな方法を示します。

1. netstatコマンドの使用

netstat (ネットワーク統計) コマンドは、ネットワーク接続、ルーティング テーブル、インターフェイス統計などに関する情報を表示するために使用されます。 Linux を含むすべての Unix 系オペレーティング システムと Windows OS で利用できます。

デフォルトでインストールされていない場合は、次のコマンドを使用してインストールします。

sudo apt-get install net-tools    [On Debian/Ubuntu & Mint] 
sudo dnf install net-tools        [On CentOS/RHEL/Fedora and Rocky Linux/AlmaLinux]
pacman -S netstat-nat             [On Arch Linux]
emerge sys-apps/net-tools         [On Gentoo]
sudo dnf install net-tools        [On Fedora]
sudo zypper install net-tools     [On openSUSE]

インストールしたら、次のように grep コマンドを使用して、Linux の特定のポートでリッスンしているプロセスまたはサービスを検索できます (ポートを指定します)。

netstat -ltnp | grep -w ':80' 

上記のコマンドでは、フラグ。

  • l – netstat に、リッスンしているソケットのみを表示するように指示します。
  • t – TCP 接続を表示するように指示します。
  • n – 数値アドレスを表示するように指示します。
  • p – プロセス ID とプロセス名の表示を有効にします。
  • grep -w – 正確な文字列 (:80) の一致を示します。

: netstat コマンドは非推奨となり、Linux では最新の ss コマンドに置き換えられました。

2. lsofコマンドの使用

lsof コマンド (開いているファイルの一覧表示) は、Linux システム上で開いているすべてのファイルを一覧表示するために使用されます。

システムにインストールするには、以下のコマンドを入力します。

sudo apt-get install lsof     [On Debian, Ubuntu and Mint]
sudo yum install lsof         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/lsof  [On Gentoo Linux]
sudo pacman -S lsof           [On Arch Linux]
sudo zypper install lsof      [On OpenSUSE]    

特定のポートでリッスンしているプロセス/サービスを検索するには、「(ポートを指定)」と入力します。

lsof -i :80

3. fuserコマンドの使用

fuser コマンドは、Linux で指定されたファイルまたはファイル システムを使用するプロセスの PID を表示します。

次のようにインストールできます。

sudo apt-get install psmisc     [On Debian, Ubuntu and Mint]
sudo yum install psmisc         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/psmisc  [On Gentoo Linux]
sudo pacman -S psmisc           [On Arch Linux]
sudo zypper install psmisc      [On OpenSUSE]    

以下のコマンドを実行すると、特定のポートでリッスンしているプロセス/サービスを見つけることができます (ポートを指定します)。

fuser 80/tcp

次に、 このようにps コマンドでPID番号を使用してプロセス名を見つけます。

ps -p 2053 -o comm=
ps -p 2381 -o comm=

Linux のプロセスに関するこれらの役立つガイドもチェックしてください。

それだけです! Linux の特定のポートでリッスンしているプロセス/サービスを見つける他の方法をご存知でしたら、以下のコメント フォームからお知らせください。