nodejsのデフォルトポートを開けません

WBOY
リリース: 2023-05-14 09:09:37
オリジナル
695 人が閲覧しました

Node.js は、サーバー側で JavaScript コードを実行する非常に人気のある JavaScript ランタイム環境です。 Node.js は、サーバー側コードの作成に関連する問題の多くを解決し、接続リクエストを待機し、リクエストを受け入れ、応答することができます。他のサーバー側プログラミング言語やフレームワークと同様に、Node.js も接続リクエストを受け入れるためにポートをリッスンする必要があります。ただし、デフォルトのポートが開けない場合がありますので、次にこの問題の解決策を見てみましょう。

まず、ポートの概念を明確にする必要があります。コンピュータ ネットワークでは、ポートはネットワーク通信の論理概念であり、コンピュータ ホスト上の複数のプロセスまたはアプリケーションがネットワーク リソースを共有できるようにするために導入されています。ポート番号は、0 ~ 65535 の範囲の 16 ビット数値です。サーバー側プログラミングでは、サーバー プロセスが特定の IP アドレスにバインドするときに使用するポート番号を指定する必要があります。クライアントがサーバーに接続する必要がある場合、対応する IP アドレスとポート番号を使用してサーバーと通信する必要があります。

Node.js のデフォルトのポートは 3000 です。コード内で HTTP サーバー インスタンスを作成し、そのポートでリッスンすることでポートを開くことができます:

const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!');
});

server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});
ログイン後にコピー

上記の例では HTTP サーバーを作成しますインスタンス を作成し、そのリスニング ポート番号を 3000 として指定しました。操作が成功した場合は、ブラウザに http://localhost:3000/ と入力してサーバーにアクセスできます。

ただし、次の理由が考えられるため、デフォルトのポートを開けない場合があります。

  1. ポートはすでに占有されています。

場合によっては、そのポート番号を使用するプロセスがすでに存在します。この場合、そのポート番号を使用してプロセスを終了するか、別のポート番号を使用する必要があります。 lsof コマンドを使用して、ポートを占有しているプロセスを見つけることができます:

sudo lsof -n -i4TCP:3000 | grep LISTEN
ログイン後にコピー

出力は、ポートを占有しているプロセスのリストになり、その後、kill コマンド これらのプロセスを終了します:

sudo kill <PID>
ログイン後にコピー
  1. ファイアウォールがこのポートへのアクセスをブロックします。

場合によっては、システム ファイアウォールがこのポートへのアクセスをブロックすることがあります。この時点で、ポートを通過するトラフィックを許可するようにファイアウォール ルールを構成する必要があります。具体的には、iptables コマンドを使用してファイアウォール ルールを構成できます。

sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
ログイン後にコピー

これにより、3000 ポートを介した TCP トラフィックが許可されます。 UFW ファイアウォールを使用する場合は、ルールを同様に構成する必要があります:

sudo ufw allow 3000/tcp
ログイン後にコピー
  1. 管理者権限が不十分です。

場合によっては、一部の小さいポート番号 (1 ~ 1023 など) を使用する権限がないか、ポートを開くための十分な権限がない可能性があります。現時点では、sudo コマンドを使用して、管理者権限で Node.js アプリケーションを実行する必要があります:

sudo node app.js
ログイン後にコピー
  1. ネットワークの問題。

ネットワーク接続に問題がある場合、ポートが開かない可能性があります。この時点で、ネットワーク接続とルーターの設定が正しく機能していることを確認する必要があります。

一般に、Node.js のデフォルト ポートを開けない場合は、次のような理由が考えられます。さまざまな状況に応じて対処する必要があります。この記事が問題を解決し、優れた Node.js アプリケーションの開発に成功するのに役立つことを願っています。

以上がnodejsのデフォルトポートを開けませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート