1. ホーム
  2. macos

[解決済み] Mac OS Xで、指定したTCPポートでリッスンしているのは誰ですか?

2022-03-15 16:09:01

質問内容

Linuxでは netstat -pntl | grep $PORT または fuser -n tcp $PORT をクリックすると、指定したTCPポートでリッスンしているプロセス(PID)を調べることができます。Mac OS Xで同じ情報を得るにはどうすればよいのでしょうか?

どのように解決するのですか?

macOSの場合 Big Sur 以降では、このコマンドを使用します。

sudo lsof -i -P | grep LISTEN | grep :$PORT

または、IPv4だけを表示することもできます。

sudo lsof -nP -i4TCP:$PORT | grep LISTEN

古いバージョンでは、以下のいずれかの形式を使用してください。

sudo lsof -nP -iTCP:$PORT | grep LISTEN
sudo lsof -nP -i:$PORT | grep LISTEN

代用品 $PORT には、ポート番号またはポート番号をカンマで区切ったリストを指定します。

プリペイド sudo (その後にスペース)を入れて、#1024以下のポートに関する情報が必要な場合。

-n フラグは、ホスト名の代わりにIPアドレスを表示するためのものです。ホスト名を得るための DNS ルックアップには時間がかかるため (多くのホストでは数秒から 1 分程度)、このフラグによってコマンドの実行が非常に速くなります。

その -P のような解決された名前ではなく、生のポート番号を表示するためのフラグです。 http , ftp のような難解なサービス名、あるいは dpserve , socalia .

その他のオプションについては、コメントをご覧ください。

一緒に使われることが多いので、念のため。

PIDを殺すこと。

sudo kill -9 <PID>
# kill -9 60401