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


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

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

1.netstatコマンドの使用

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

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

$ sudo yum install net-tools	#RHEL/CentOS 
$ sudo apt install net-tools	#Debian/Ubuntu
$ sudo dnf install net-tools	#Fedora 22+

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

$ netstat -ltnp | grep -w ':80' 

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

  • l – tells netstat to only show listening sockets.
  • t – tells it to display tcp connections.
  • n – instructs it show numerical addresses.
  • p – enables showing of the process ID and the process name.
  • grep -w – shows matching of exact string (:80).

2.lsofコマンドの使用

lsofコマンド(LiSt Open Files)は、Linuxシステムで開いているすべてのファイルを一覧表示するために使用されます。システムにインストールするには、以下のコマンドを入力します。

$ sudo yum install lsof	        #RHEL/CentOS 
$ sudo apt install lsof		#Debian/Ubuntu
$ sudo dnf install lsof		#Fedora 22+

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

$ lsof -i :80

3.フューザーコマンドの使用

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

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

$ sudo yum install psmisc	#RHEL/CentOS 
$ sudo apt install psmisc	#Debian/Ubuntu
$ sudo dnf install psmisc	#Fedora 22+

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

$ fuser 80/tcp

次に、psコマンドでPID番号を使用してプロセス名を検索します。

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

Linuxのプロセスに関するこれらの便利なガイドも確認できます。

  1. All You Need To Know About Processes in Linux [Comprehensive Guide]
  2. Limit CPU Usage of a Process in Linux with CPULimit Tool
  3. How to Find and Kill Running Processes in Linux
  4. Find Top Running Processes by Highest Memory and CPU Usage in Linux

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