開いているポート
ポートは、httpサーバー、データベースサーバー、SMTPサーバーなどのさまざまなバックグラウンドサービスによってシステム上で開かれます。
Webサーバーを実行していて、そのようなサービスを起動すると、インターネットまたはローカルネットワーク上の他のシステムが接続できるように、ポートが開きます。
システムでサービスを開始した後、目的のポートがサービスによって開かれているかどうかを確認する必要があります。
ポートが開いていない場合は、サービスの開始に失敗したか、エラーが原因で動作を停止した可能性があります。
Netstatで開いているポートを確認する
Linuxサーバーまたはシステムで開いているポートを確認する非常に簡単な方法は、netstatコマンドを使用することです。 netstatコマンドは、システムのネットワーク接続を確認するためのものですが、開いているポートを簡単に確認して報告できます。
構文は非常に単純です。次のオプションを使用する必要があります:
"-l" (for listening connections) "-t" (for tcp connections) "-p" (process name and id that opened the port) "-n" (show port numbers instead of names)>
簡単な例を次に示します。
$ sudo netstat -ltpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:33060 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:6600 0.0.0.0:* LISTEN 1/init tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1283/apache2 tcp 0 0 0.0.0.0:1716 0.0.0.0:* LISTEN 1748/kdeconnectd tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 735/systemd-resolve tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1471/cupsd
上記の例は、apacheがhttp(80)ポートを開き、mysqlが3306ポートを開いたことを明確に示しています。
「-n」オプションを省略すると、代わりにポート名が表示されます。
$ sudo netstat -ltp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:33060 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:6600 0.0.0.0:* LISTEN 1/init tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN 1283/apache2 tcp 0 0 0.0.0.0:1716 0.0.0.0:* LISTEN 1748/kdeconnectd tcp 0 0 localhost:domain 0.0.0.0:* LISTEN 735/systemd-resolve tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN 1471/cupsd
特定の開いているポートを確認する
特定の開いているポートを一覧表示する場合は、grepで出力をフィルタリングします。次のコマンドは、3306を含むポート番号を除外します
$ sudo netstat -ltpn | grep "3306" tcp 0 0 0.0.0.0:33060 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1294/mysqld
結論
netstatコマンドの詳細については、こちらのチュートリアルをご覧ください:
LinuxNetstatコマンドの10の基本的な例
お役に立てば幸いです。ご質問やご意見がございましたら、下のコメント欄でお知らせください。