16

nodejs と socket.io を使用して、ポート 3000 で websocket を使用する webapp を配信しようとしています。

インバウンド TCP ルールを関連するセキュリティ グループに追加して、管理コンソールで EC2 インスタンスのポート 3000 を開きましたが、ブラウザでパブリック DNS 経由でアクセスできません。

sudo netstat -tulpn は、開いているポートとして表示されません。

私は何が欠けていますか?再起動する必要があるサービスや、実行するためにプッシュする必要があるコマンドラインはありますか?

ありがとう

4

6 に答える 6

12

sudo netstat -tulpn は、開いているポートとして表示されません。

netstat コマンドは、「何らかの」プロセスによってリッスンされているすべてのポートを表示します。したがって、この場合、あなたが言及したように、アプリケーションがポート 3000 でリッスンしていないようです。

まず、アプリケーションを修正し、ポート 3000 でリッスンしていることを確認します。

また、netstatファイアウォールの観点からポートが開いているか閉じているかは関係ありません。LISTENING特定のポートが何らかのプロセスによってモードになっているかどうかがわかります。

次の手順を実行します:

  1. アプリケーションがポート 3000 でリッスンしていることを確認します netstat -anp | grep 3000telnet 127.0.0.1 3000
  2. 次に、ポート 3000 への受信アクセスを許可するようにローカル ファイアウォールが構成されていることを確認するか、ローカル ファイアウォールを無効にしてクイック テストを実行します ( service iptables stop)。Linuxの場合、通常はiptables
  3. AWS セキュリティ グループでポート 3000 への受信アクセスを許可します。

上記の 3 つの点に従ってください。それでも同じ問題が発生する場合はお知らせください。

于 2013-10-13T16:23:52.460 に答える
2

AWS マネジメント コンソールを使用して変更を行ったと思います。しかしこれは、Amazon のシステムが独自のセキュリティ システムを介してポート 3000 でメッセージをサーバーに送信できることを意味します。

EC2 サーバー (Windows か Linux かはわかりません) には、ポート 3000 を開く必要がある独自のファイアウォール システムがある場合があります。どの設定を変更する必要があるかについては、サーバーのドキュメントを参照する必要があります。

EC2 インスタンスでブラウザを開こうとしたことがあり、そこから webapp にアクセスできると仮定します。

また、横に考えて、EC2 サーバーで実行されている他の Web サーバーがない場合、node.js webapp をポート 80 を使用するように変更してみませんか?

于 2013-10-12T22:18:45.713 に答える
0

これが誰かに役立つことを願っています。3000 TCP のセキュリティ ルールを追加し、.xml のセキュリティ グループ ID にリンクする必要があるというオンライン チュートリアルに従っていましたsource

それは間違っている。その行を削除し、IPv4 と IPv6 のポート 3000 に 2 つのカスタム TCP を設定するだけです。それは私のためにそれを修正しました。

于 2021-07-13T21:02:34.147 に答える