はじめに
ポート 通信エンドポイントです。ソフトウェアレベルでは、オペレーティングシステム内で、ポートは特定のプロセスまたはネットワークサービスのタイプを識別する論理構造です。ポートは、トランスポートプロトコルとアドレスの組み合わせごとに、ポート番号と呼ばれる16ビットの符号なし番号によって識別されます。 。ポート番号を使用する最も一般的なトランスポートプロトコルは、伝送制御プロトコル(TCP)とユーザーデータグラムプロトコル(UDP)です。
また、ポートは通信のエンドポイントを表す論理エンティティであり、オペレーティングシステムの特定のプロセスまたはサービスに関連付けられています。以前の記事では、Linuxで開いているすべてのポートのリストを確認する方法と、Netcatコマンドを使用してリモートポートに到達できるかどうかを確認する方法について説明しました。
1。 lsofコマンドの使用
lsof コマンド(開いているファイルの一覧表示)は、Linuxで開いているすべてのファイルを一覧表示するために使用されます
システムにインストールするには、
を実行します$ sudo apt-get install lsof #for Debian, Ubuntu and Mint
$ sudo yum install lsof #for RHEL/CentOS/Fedora and Rocky Linux
$ sudo emerge -a sys-apps/lsof #for Gentoo Linux
$ sudo pacman -S lsof #for Arch Linux
$ sudo zypper install lsof #for OpenSUSE
特定のポートでリッスンしているプロセス/サービスを見つけるには、以下のコマンドを実行します:
[root@unixcop ~]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 12289 root 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24040 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24041 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24042 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
[root@unixcop ~]#
2。 netstatコマンドの使用
つまり、 netstat コマンドは、ネットワーク接続、ルーティングテーブル、インターフェイス統計などの情報を表示するために使用される(ネットワーク統計)を参照します。
netstatをインストールするには:
$ sudo apt-get install net-tools #for Debian/Ubuntu & Mint
$ sudo dnf install net-tools #for CentOS/RHEL/Fedora and Rocky Linux
$ pacman -S netstat-nat #for Arch Linux
$ emerge sys-apps/net-tools #for Gentoo
$ sudo dnf install net-tools #for Fedora
$ sudo zypper install net-tools #for openSUSE
grepで使用できます 以下のコマンドのように、Linuxの特定のポートでリッスンしているプロセスまたはサービスを検索するコマンド:
$ netstat -ultnp | grep -w ':80'

上記のコマンドでは、フラグ。
-
l
–リッスンソケットのみを表示するようにnetstatに指示します。 -
p
–プロセスIDとプロセス名の表示を有効にします。 -
n
–数値アドレスを表示するように指示します。 -
t
–tcp接続を表示するように指示します。 -
grep -w
–正確な文字列(:80)の一致を示します。
3。フューザーコマンドの使用
フューザー コマンドは、指定されたファイルまたはファイルシステムを使用するプロセスのPIDを表示します。
次のコマンドでインストールできます:
$ sudo apt-get install psmisc #for Debian, Ubuntu and Mint
$ sudo yum install psmisc #for RHEL/CentOS/Fedora and Rocky Linux
$ sudo emerge -a sys-apps/psmisc #for Gentoo Linux
$ sudo pacman -S psmisc #for Arch Linux
$ sudo zypper install psmisc #for OpenSUSE
コマンドを実行すると、特定のポートでリッスンしているプロセス/サービスを見つけることができます:
[root@unixcop ~]# fuser 80/tcp
80/tcp: 12289 24040 24041 24042
[root@unixcop ~]#
psコマンドでPID番号を使用してプロセス名を検索するには :
$ ps -p 2053 -o comm=
$ ps -p 2381 -o comm=
[root@unixcop ~]# fuser 80/tcp
80/tcp: 12289 24040 24041 24042
[root@unixcop ~]# ps -p 12289 -o comm=
httpd
[root@unixcop ~]# ps -p 24040 -o comm=
httpd
[root@unixcop ~]
結論
このガイドでは、Linuxの特定のポートでリッスンしているプロセス/サービスを見つけるための最良の方法を知っています。