このような初歩的な質問で申し訳ありませんが、私は確かに初心者です。私の質問は、私の例に関連して、ポートで LISTEN または ACCEPT とはどういう意味ですか?
例: Tomcat サーバーがあり、ポート 8080 を使用します。ポートが使用可能であることを確認したいと思います。
UNIX サーバーで実行する必要があるコマンドとその理由は何ですか?
このようなコマンドで得られる情報は次のとおりです。netstat -an | grep LISTEN
ポートが netstat のように表示される場合、LISTEN
そのポートはサーバー プロセスによって使用されているため、使用できません。以下に例を示します。
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
これは、ポート631が使用中であることを示しています。
末尾の UNIX タイプのソケットは無視してください。これらは無関係です。
ポート 8080 が使用されているかどうかを確認するには、コマンドを使用するだけですnetstat -an|grep 8080
。以下の形式で出力が得られた場合は、8080 が既に使用されており、Tomcat に新しいポートを割り当てる必要があることを意味します。
# netstat -an
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN
Netstat
コマンドは、ネットワーク接続、ルーティング テーブル、インターフェース統計、マスカレード接続、マルチキャスト メンバーシップなど、さまざまなネットワーク関連情報を表示します。
a
オプションを使用netstat
すると、リスニング ポートと非リスニング ポートの両方が提供されます
n
ホスト、ポート、またはユーザーの名前を表示したくない場合は、netstat -n
オプションを使用します。これは、ホスト名、ポート名、ユーザー名を解決する代わりに、数字で表示されます。netstat
ルックアップを実行していないため、これにより出力も高速化されます。
telnet を使用して、ポートが開いていてリッスンしているかどうかを確認することもできます。
Zeeshan$ telnet google.com 80
Trying 173.194.35.5...
Connected to google.com.
Escape character is '^]'.
ポート 80 で google.com に telnet を実行しています。出力の 3 行目を見ると、Google の Web サーバーに接続されていることがわかります。同じように、Tomcat という Java アプリケーション サーバーがあり、ポート 8080 でリッスンしています。実際には、クライアントにポート 8080 で接続するように要求しているため、クライアントに Java サービスを提供できます。クライアント側の telnet localhost 8080 から使用する場合、ポート 80 で Google の Web サーバーに接続したのと同じ方法で接続されます。Tomcat が実行され、ポート 8080 でリッスンしている場合。他のアプリケーションでは、ポート 8080 を別の空いているポートに変更するだけです。Telnet により、次のステータスが表示されます。
accepted (connected), refused, and timeout
したがって、チェックする方法は 2 つあります。Tomcat サーバーを実行している同じマシンから:
telnet localhost 8080
他のマシンまたはネットワークの外部から確認したい場合:
telnet 192.168.1.1 8080
それが役立つことを願っています。