ポート番号の空き状況を確認するには、現在使用中のポートをリストアップして、目的のポートが使われているかどうかを確認します。以下の方法でポートの状況を調べることができます。
1. lsof
コマンドを使用する
特定のポートを確認
sudo lsof -i :<ポート番号>
例: ポート80の使用状況を確認する場合
sudo lsof -i :80
出力例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1234 root 6u IPv4 12345 0t0 TCP *:http (LISTEN)
COMMAND: ポートを使用しているプログラム名。
PID: プロセスID。
NAME: 使用中のポート(例: *:http
)。
ポート80が使用されていなければ、何も表示されません。
2. netstat
コマンドを使用する
すべてのリッスン中のポートを表示
sudo netstat -tuln
出力例:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
Local Address: 使用されているIPアドレスとポート番号(例: 0.0.0.0:80
)。
State: LISTEN
はそのポートがリッスン状態(待ち受け中)であることを示します。
特定のポートの確認
sudo netstat -tuln | grep :<ポート番号>
例: ポート443の確認
sudo netstat -tuln | grep :443
3. ss
コマンドを使用する
ss
は netstat
よりも高速で詳細な情報を提供します。
すべてのリッスン中のポートを表示
sudo ss -tuln
- 出力例:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:3306 0.0.0.0:*
特定のポートの確認
sudo ss -tuln | grep :<ポート番号>
例: ポート22(SSH)の確認
sudo ss -tuln | grep :22
4. 確認したいポートが使われていない場合
特定のポートがリストに含まれていない場合、そのポートは現在空いており使用可能です。
5. ポートを開放しているプロセスを停止する方法
プロセスID(PID)を特定
lsof
または netstat
の結果からPIDを取得します。
プロセスを停止
サービスとして動作している場合:
sudo systemctl stop <サービス名>
プロセスを直接終了する場合:
sudo kill <PID>
再確認
プロセスが終了した後、再度 lsof
や ss
コマンドで確認します。
6. ファイアウォールの影響を確認する
ポートが空いていても、ファイアウォールが原因で外部から接続できない場合があります。
UFW(Uncomplicated Firewall)の設定確認
sudo ufw status
- ポートが許可されているか確認します。
- 必要に応じてポートを許可:
sudo ufw allow <ポート番号>
まとめ
ファイアウォールの設定を確認して接続制限の有無も調査することが重要です。
lsof
, netstat
, ss
コマンドを使うことで、ポートの使用状況を確認可能。
ポートが空いている場合は何も表示されない。
使用中のポートを開放するには該当プロセスを停止。
コメント