Linux でどのポートがリッスンしているかを調べる 4 つの方法
ポートの状態はオープン、フィルタリング、クローズ、またはフィルタリングなしのいずれかです。ターゲット マシン上のアプリケーションがそのポート上の接続/パケットをリッスンしている場合、そのポートは開いていると言われます。
この記事では、開いているポートを確認する 4 つの方法を説明し、Linux でどのアプリケーションがどのポートをリッスンしているかを確認する方法も示します。
1. Netstatコマンドの使用
Netstat は、Linux ネットワーク サブシステムに関する情報をクエリするために広く使用されているツールです。これを使用して、次のように開いているすべてのポートを出力できます。
sudo netstat -ltup
フラグ -l
は netstat にすべてのリッスンしているソケットを表示するように指示し、-t
はすべての TCP 接続を表示し、-u
はすべての UDP 接続を表示し、 -p
は、ポートでリッスンしているアプリケーション/プログラム名の出力を有効にします。
サービス名ではなく数値を出力するには、-n
フラグを追加します。
sudo netstat -lntup
たとえば、 grep コマンドを使用して、どのアプリケーションが特定のポートでリッスンしているかを調べることもできます。
sudo netstat -lntup | grep "nginx"
あるいは、図に示すように、ポートを指定して、バインドされているアプリケーションを検索することもできます。
sudo netstat -lntup | grep ":80"
2. ssコマンドの使用方法
ss コマンドは、ソケットに関する情報を表示するためのもう 1 つの便利なツールです。この出力は netstat の出力と似ています。次のコマンドは、TCP 接続と UDP 接続のすべてのリスニング ポートを数値で表示します。
sudo ss -lntu
3. Nmapコマンドの使用
Nmap は、強力で人気のあるネットワーク探索ツールおよびポート スキャナーです。システムに nmap をインストールするには、示されているようにデフォルトのパッケージ マネージャーを使用します。
sudo apt install nmap [On Debian/Ubuntu]
sudo yum install nmap [On CentOS/RHEL]
sudo dnf install nmap [On Fedora 22+]
Linux システムで開いているポートまたはリッスンしているポートをすべてスキャンするには、次のコマンドを実行します (完了までに長い時間がかかります)。
sudo nmap -n -PN -sT -sU -p- localhost
4. lsofコマンドの使用
開いているポートをクエリするための最後のツールは、Linux で開いているファイルを一覧表示するために使用される lsof コマンドです。 Unix/Linux ではすべてがファイルであるため、開いているファイルはストリーム ファイルまたはネットワーク ファイルである可能性があります。
すべてのインターネット ファイルとネットワーク ファイルを一覧表示するには、-i
オプションを使用します。このコマンドでは、サービス名と数値ポートが混在して表示されることに注意してください。
sudo lsof -i
特定のポートでリッスンしているアプリケーションを確認するには、この形式で lsof を実行します。
sudo lsof -i :80
それだけです!この記事では、Linux で開いているポートを確認する 4 つの方法を説明しました。また、どのプロセスが特定のポートにバインドされているかを確認する方法も示しました。以下のフィードバック フォームからご意見を共有したり、質問したりできます。