「ローカルサーバーが立ち上がらない」
「このポート使ってるの、誰?」
そんな時に役立つのが「Macで現在使用中のポートを確認する方法」です。
特にWeb開発やDockerなどを利用していると、ポートの競合が原因でアプリケーションが正常に動作しないことがあります。
この記事では、Macのターミナルで簡単に使用中ポートを調べる方法を初心者向けに丁寧に解説します。
使い方は簡単!まずは基本コマンド:lsof

Macで使用中のポートを調べるには、まず以下のような lsof
コマンドを使います。
lsof
は「List Open Files」の略で、開いているファイルやネットワークポートを確認できるコマンドです。
sudo lsof -i :ポート番号
例:ポート3000が使われているか確認する場合
sudo lsof -i :3000
このコマンドを実行すると、そのポートを使っているプロセスの情報が一覧表示されます。
表示例とその見方
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 12345 myuser 18u IPv4 0x1234 0t0 TCP *:3000 (LISTEN)
この例では:
- COMMAND:
node
プロセスがポートを使用中 - PID: プロセスID(この例では12345)
- USER: 実行ユーザー名
- NAME: ポート番号と状態(LISTENは待ち受け中を意味)
もし何も表示されなければ、該当ポートは現在使われていません。
全ポートの使用状況を一覧表示する

特定のポートではなく、すべての使用中ポートを確認したい場合は、以下のようにします。
sudo lsof -i -P
オプションの説明
-i
: インターネット接続に関する情報を表示-P
: ポート番号を名前に変換せずに表示(例:80ではなくhttpと表示しない)
このコマンドは、ネットワーク関連の全接続を表示し、使用中のポート番号やプロセス名も確認可能です。表示される情報の中で、LISTEN
状態になっているものが現在ポートを待ち受けているプロセスです。
見やすく表示するテクニック
接続が多すぎて見づらい場合は、grep LISTEN
を組み合わせると、待ち受け中のポートだけに絞れます:
sudo lsof -i -P | grep LISTEN
また、特定のプロトコル(TCPやUDP)だけを表示することも可能です:
sudo lsof -iTCP -P
プロセスを特定して停止したいとき

ポートを使っているプロセスID(PID)がわかれば、以下のようにして強制終了も可能です。
① プロセスID(PID)を確認:
sudo lsof -i :3000
例)出力の中に PID
が 12345 のプロセスがあったとします。
② 該当プロセスを停止:
kill -9 12345
より安全な終了方法
kill -9
は強制終了のため、データが破損するリスクがあります。まずは通常の終了信号を送る方法を試しましょう:
kill 12345
それでも終了しない場合に -9
オプションを使います。
netstat や ss はMacでは非推奨?
Linuxでよく使われる netstat
や ss
コマンドですが、Macでは非推奨または標準でインストールされていないことがあります。
そのため、Macでは lsof
や ps
, nettop
などのコマンドが推奨されます。
代替方法:nettop コマンド
グラフィカルなネットワーク監視ツールとして、nettop
も便利です:
nettop
これでインタラクティブなインターフェースでネットワーク接続が表示されます。q
キーで終了できます。
応用:ポート80や443のようなシステムポートの使用状況を確認

sudo lsof -iTCP:80 -sTCP:LISTEN
このようにすれば、HTTP(80番)やHTTPS(443番)などの重要ポートが、他のアプリケーションに占有されていないか確認できます。
特定のアプリケーションがどのポートを使っているか確認
例えば、JavaやNode.jsプロセスが使用しているポートを確認したい場合:
sudo lsof -i -P | grep java
sudo lsof -i -P | grep node
特定の範囲のポートをチェック
例えば、8000番から9000番のポートを確認したい場合:
sudo lsof -i :8000-9000
よくあるポート競合と対処法
ケース1: 同じポートで起動しようとしてエラー
Error: listen EADDRINUSE: address already in use :::3000
このエラーは、ポート3000がすでに使用中であることを示しています。
lsof
で確認し、必要に応じてプロセスを終了するか、別のポートを使用しましょう。
ケース2: Dockerのコンテナポートが競合
Dockerを使っている場合、コンテナのポートマッピングも競合の原因になります。
# Dockerコンテナが使用しているポートを確認
docker ps
ケース3: システムサービスが使用中
Macのシステムサービスがポートを使用していることもあります。例えば、AirPlayは7000番ポートを使います。
sudo lsof -i :7000
まとめ|Macのポート確認で開発・トラブル対応をスマートに
Macでポートを確認するのは、開発者にとっての基本中の基本スキルです。
特にトラブル時や複数のサービスを並行で使う場面では、ポートの競合を素早く見つけて解決することで、無駄な時間を減らせます。
ポイントまとめ
sudo lsof -i :ポート番号
で特定ポートの確認sudo lsof -i -P | grep LISTEN
で待ち受け中のポート一覧を確認- PIDを使ってプロセス停止も可能(慎重に)
- Macでは
netstat
よりlsof
を活用 - ポート競合は開発環境でよく起こるトラブルの一つ
ぜひ、ターミナルからポート状態をチェックする習慣をつけて、より快適なMac開発環境を手に入れてください!
コメント