Ipad

Mac の TCP ポートをリッスンしているユーザー/デバイスを確認する方法

Mac の TCP ポートをリッスンしているユーザー/デバイスを確認する方法

MacのTCPポートでリッスンするもの

Macで開いているTCP接続のうち、どの接続が待機状態になっているかを確認したい状況に遭遇することがあるかもしれません。これは、特定のネットワーク問題のトラブルシューティングを行う場合や、Mac上の特定のポートで待機しているプロセスを特定したい場合に役立ちます。

コマンドライン lsof ツールを使用して、Mac 上のオープン TCP 接続をリッスンしているもの/ユーザーを調べます。これは、ターミナルと sudo に慣れている上級 Mac ユーザーに最適です。

MacOS で TCP ポートを listen しているものを見つける方法

ここで使用するコマンドは、MacOS Ventura と MacOS Monterey を対象としていますが、古いバージョンの MacOS でも動作するはずです。

  1. /アプリケーション/ユーティリティ/から、またはSpotlightからCommand+スペースバーで「ターミナル」アプリケーションを開きます。
  2. 次のコマンドを入力します。
  3. sudo lsof -iTCP -sTCP:LISTEN -P -n

  4. Enterキーを押して管理者パスワードを入力すると、コマンドが実行され、MacのどのTCPポートで何がアクティブにリッスンしているかのリストが表示されます。

コマンド/プロセス、プロセス ID (PID)、タイプ (IPv6 と IPv4)、デバイス、ノード (この場合は TCP)、およびポートのリストが表示されます。

MacのTCPポートでリッスンするものを見つける

この情報を使用すると、目的に応じて次のステップを決定できます。

興味がある方のために、ここで使用されているコマンドとさまざまなフラグについて詳しく説明します。

  • sudo: スーパーユーザー権限でコマンドを実行し、root を含むすべてのユーザーによって開かれたネットワーク接続を表示できるようにします。
  • lsof: 開いているネットワーク接続を含む、システム上で開いているすべてのファイルを一覧表示します。
  • -iTCP: 結果をフィルタリングして TCP 接続のみを表示します。
  • -sTCP:LISTEN: 結果をフィルタリングして、リッスン中の TCP 接続のみを表示します。
  • -P: ポート名の解決を無効にし、ポート番号のみを表示します。
  • -n: ホスト名の解決を無効にし、IP アドレスのみを表示します。

lsof コマンドは非常に強力であり、特定のファイルと対話しているアプリまたはプロセスを特定したり、インターネット接続を使用しているプロセスを見つけたり、開いているネットワーク接続を表示したり、開いているすべてのインターネット接続をリッスンしたりするなど、その使用方法については以前にも説明しました。

ちなみに、GUI を好む場合は、基本的に lsof の GUI フロントエンドである Sloth アプリを試してみることができます。これは無料でダウンロードできます。また、Activity Monitor でも同様の機能が限定的にサポートされています。

Macの特定のTCPポートを誰が、あるいは何がリッスンしているかを調べるために、同様のトリック、コマンド、ツールを使っている方はいらっしゃいますか?ぜひ下のコメント欄で教えてください。