Linux でポートの占有状況を確認するにはlsofとnetstatコマンドを使用できます。
lsof
lsof(list open files)は、現在システムで開いているファイルを一覧表示するツールです。
lsof ポート占有状況の確認構文形式:
lsof -i:端口号
実例
サーバーの8000ポートの占有状況を確認:
# lsof -i:8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nodejs 26993 root 10u IPv4 37999514 0t0 TCP *:8000 (LISTEN)
8000ポートが既に軽量nodejsサービスに占有されていることがわかります。
lsof -i の実行には root ユーザーの権限が必要です。下図のとおり:

その他の lsof コマンドは以下のとおり:
lsof -i:8080:查看8080端口占用 lsof abc.txt:显示开启文件abc.txt的进程 lsof -c abc:显示abc进程现在打开的文件 lsof -c -p 1234:列出进程号为1234的进程所打开的文件 lsof -g gid:显示归属gid的进程情况 lsof +d /usr/local/:显示目录下被进程开启的文件 lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长 lsof -d 4:显示使用fd为4的进程 lsof -i -U:显示所有打开的端口和UNIX domain文件
netstat
netstat -tunlptcp、udp のポートやプロセスなどに関する状況を表示するために使用します。
netstat ポート占有状況の確認構文形式:
netstat -tunlp | grep 端口号
- -t (tcp) tcp関連オプションのみ表示
- -u (udp) udp関連オプションのみ表示
- -n エイリアスの表示を拒否し、数値で表示できるものはすべて数値に変換
- -l Listen(待機)状態のサービスのみ一覧表示
- -p 関連リンクを確立したプログラム名を表示
# netstat -tunlp | grep 8000 tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 26993/nodejs
その他のコマンド:
netstat -ntlp //查看当前所有tcp端口 netstat -ntulp | grep 80 //查看所有80端口使用情况 netstat -ntulp | grep 3306 //查看所有3306端口使用情况
kill
ポートを占有しているプロセスを確認した後、対応するプロセスを終了するには kill コマンドを使用できます:
kill -9 PID
上記の例では、8000ポートに対応するPIDが26993であることを確認しました。次のコマンドでプロセスを終了します:
kill -9 26993