GNU/Linux >> Linux の 問題 >  >> Linux

netstatでリスニングポートを確認する

正常に実行されていることがわかっているサービスのトラブルシューティングを行う場合、次のステップは、サービスが正しいネットワークポートでリッスンしていることを確認することです。

netstat コマンドは、Linuxサーバー上のポートをリッスンしているサービスと、それらに対して現在行われている接続の詳細を表示します。基本的なネットワークデーモンのトラブルシューティング中に考慮すべき接続の詳細は、デーモンがリッスンしているアドレス(ポート番号を含む)、デーモンのプロセス識別子( PID)、およびプログラム名。

netstatを実行する必要があります サービスを実行しているサーバー上。Netstat ファイアウォール構成の影響を受けません。

注: lsofを使用することもできます およびss ポートをチェックするコマンド。この記事に含まれているコマンドフラグの多くは、lsofを実行しても同じです。 およびss コマンド。ただし、これらのコマンドを使用したときに返される出力は、netstatの出力とは異なる場合があります。 道具。両方のコマンドの詳細については、lsofを参照してください。 およびss コマンドマニュアル。

ポートを確認する

リッスンされているTCPポート、および各リスナーのデーモンの名前とそのPIDを一覧表示するには、次のコマンドを実行します。

sudo netstat -plnt

次の例は、3つの異なるソケットでリッスンしている3つの一般的なプログラムの出力を示しています。

$ sudo netstat -plnt
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:3306                0.0.0.0:*                   LISTEN      3686/mysqld
tcp        0      0 :::443                      :::*                        LISTEN      2218/httpd
tcp        0      0 :::80                       :::*                        LISTEN      2218/httpd
tcp        0      0 :::22                       :::*                        LISTEN      1051/sshd
リストをフィルタリングする

リスニングデーモンのリストが長い場合は、grepを使用できます。 たとえば、デフォルトのWebサーバーポート80以外のすべてを除外します。 、次のコマンドを実行します:

$ sudo netstat -plnt | grep ':80'
tcp        0      0 :::80                       :::*                        LISTEN      8448/httpd
結果を分析する

一般的な結果には、次の結果が含まれます。

  • ポートで何もリッスンしていません。サービス構成ファイルを確認してから、サービスを再起動してください。
  • 正しいサービスが正しいポートでリッスンしています。この場合、サービスをより徹底的にテストする必要があります。 netcatを使用した応答のリスニングサービスのテストに関する記事にスキップしてください。
  • 期待されるサービス以外のものがポートでリッスンしているようです。

:xinetdなどのスーパーサーバーがポートでリッスンしている可能性があります。 xinetdの構成をチェックして、この動作が許容できることを確認してください。

他の何かがポートでリッスンしている場合は、sudo service httpd stopを実行してプログラムを無効にできます。 、またはその構成を変更して、ポートでリッスンしなくなるようにします。 netstatの場合 ポートが空いていることを示し、正しいサービスを有効にします(たとえば、sudo service vsftpd start

誤ったサービスがリッスンしているために変更を加えた場合は、netstatを実行してください もう一度コマンドします。 netstatの場合 正しいポートでリッスンしているプログラムが表示されない場合は、先に進む前にその構成に対処する必要があります。

この時点で変更を加える場合は、必ずセットアップをテストして、問題が解決したことを確認してください。

netstatを使用する場合 ポートの問題が解決しなかった場合は、netcatコマンドを使用してサービスへの接続を引き続きテストしてください。


Linux
  1. netstat、lsof、およびnmapを使用してLinuxで開いているポートを確認する方法

  2. lsでLinuxファイルのパーミッションを確認する

  3. netstatでリスニングポートを確認する

  1. Linuxでduを使用して使用済みディスク容量を確認する

  2. Linuxで実行中のサービスを確認する

  3. 特定のサービスが Ubuntu で実行されているかどうかを確認する方法

  1. systemctlを使用して複数のサービスインスタンスを管理する

  2. 特定のポートLinuxでリッスンしているサービスを確認します

  3. プロセスがリッスンしている信号を確認する方法は?