localhost:3000とは?つながらないときの直し方
localhost:3000
localhost:3000とは?接続拒否やポート使用中を直す方法 | We.Inc
localhost:3000の意味、デフォルトでポート3000を使う開発サーバー、そして接続拒否やアドレス使用中のエラーを直すMac、Linux、Windowsのコマンドを解説します。
localhost:3000は、自分のコンピューター上で動き、ポート3000で待ち受けているWebサーバーです。Next.js、ExpressのHello Worldの例、Railsはいずれもデフォルトでこのポートを使います。ページが接続を拒否するなら、そこでは何も待ち受けていません。サーバーが起動しないなら、別のプロセスがすでにポートを使っているので、それを見つけて止められます。
どのエラーが出ていますか?
- ブラウザー:localhostで接続が拒否されました
- ポート3000で何も待ち受けていない
- 開発サーバーを起動し、表示されるURLを確認する
- ターミナル:EADDRINUSE :::3000
- 別のプロセスがすでにポート3000を使っている
- そのプロセスを見つけて止めるか、別のポートを使う
- ページは開くが、古いアプリが表示される
- 別のプロジェクトのサーバーがまだ動いている
- それを止めてから、正しいほうを再起動する
localhostは常にこのマシン自身を指し、コロンの後の数字はそのマシン上のどのプログラムと通信するかを選びます。ポート3000のトラブルのほとんどは、正反対の2つの問題のどちらかです。そこでサーバーが動いていないか、2つのサーバーが同時にそのポートを使おうとしているかです。下にポート番号を入力すると、あなたのシステム用のコマンドが表示されます。
- アプリが使うポート番号を入力します。デフォルトは3000です。
- システムに合った検索コマンドをコピーしてターミナルで実行し、どのプロセスが待ち受けているかを確認します。
- 2つ目のコマンドでそのプロセスを止めるか、アプリを別のポートで起動します。
- 何も待ち受けていない場合は、デフォルトポートの表で、使っているツールが本当に3000を使うか確認しましょう。
- 開発サーバーが起動時に表示するURLを確認しましょう。例えばViteは5173を使い、使用中なら次の空きポートに移ります。
- 開発サーバーはウィンドウを閉じるのではなく、そのターミナルでCtrl+Cを押して止めましょう。ウィンドウを閉じるとプロセスが残ることがあります。
- 意図的にHTTPSでサーバーを起動したのでなければ、httpsではなくhttpを使いましょう。Next.jsがローカルでHTTPSを配信するのは--experimental-httpsを付けたときだけです。
- Docker内では、アプリが0.0.0.0で待ち受け、ポートが公開されている必要があります。そうでないと、ホストマシンのlocalhostは接続を拒否します。
よくある質問
localhost:3000とは何ですか?
localhostは自分のコンピューターを指す名前で、通常は127.0.0.1か::1です。3000はポート番号です。この2つを合わせて、ローカルで動いているサーバー、多くの場合はWebアプリの開発サーバーを指します。インターネット上の他の誰も、あなたのlocalhostのURLを開くことはできません。
localhost:3000で接続が拒否されるのはなぜですか?
そのポートで接続を受け付けているプログラムがないからです。開発サーバーが起動していないか、エラーで落ちたか、5173などの別のポートで待ち受けている可能性があります。起動したターミナルを確認してください。
ポート3000が使用中のエラーを直すには?
MacやLinuxならlsof、Windowsならnetstat -anoでポートを使っているプロセスを見つけ、killかtaskkillで止めます。または、next dev -p 3001のようにアプリを別のポートで起動します。
Next.jsでポートを変更するには?
next dev -p 4000のように-pを渡すか、コマンドの実行時にPORT環境変数を設定します。Next.jsのドキュメントによると、サーバーは.envファイルを読む前に起動するため、PORTは.envファイルの中では設定できません。
他の人が自分のlocalhost:3000を開けますか?
そのアドレスでは開けません。相手のマシンのlocalhostは相手自身のコンピューターを指すからです。ネットワーク内で共有するには、サーバーがすべてのインターフェースで待ち受け、他の人はあなたのマシンのローカルIPアドレスとポートを使ってアクセスします。
ポートを一言で説明すると
- コンピューターは同時に多くのサーバーを動かせるので、それぞれが番号の付いたポートで待ち受けます。あるポートとアドレスで待ち受けられるプログラムは一度に1つだけなので、3000で2つ目のサーバーを起動するとEADDRINUSEで失敗します。
- ポート3000に公式な意味はありません。人気のツールがデフォルトに選んだことで習慣になったため、忘れていたサーバーに使われている可能性が最も高いポートでもあります。
接続拒否を順番に解決する
- まず、サーバーが動いているか確認します。ターミナルに準備完了のメッセージとURLが表示されているはずです。エラーで終了していたら、存在しないサーバーにブラウザーは接続できないので、先にそのエラーを直しましょう。
- 次にポートを比べます。ターミナルには5173や4321と表示されているのに3000と入力していたら、ブラウザーは誰もいないドアをノックしていることになります。最後に、localhost:3000の代わりに127.0.0.1:3000を試します。これで、サーバーがIPv4でしか待ち受けていないのに名前がIPv6アドレスに解決されている可能性を除外できます。
開発サーバーのデフォルトポート
各ツールのドキュメントに記載されたデフォルト値(2026年10月)
- Ruby on Rails
- bin/rails server
自作のサーバーで使用中のポートに対処する
PORTからポートを読み取り、EADDRINUSEをわかりやすく報告する
3000にフォールバックし、ポートが使用中のときは読みやすいメッセージを表示する小さなExpressサーバーです。
macOSとLinux
ポートで待ち受けているプロセスを一覧表示し、そのPID(2列目)を指定して止めます。
Windows(コマンドプロンプト)
プロセスID付きで接続を表示し、ポートで絞り込んでから、そのPIDを終了します。
代わりに別のポートで実行する
他のプロセスはそのままにして、空いている場所でアプリを起動します。
ポートを解放する
ポート
ポートは1から65535までです。3000のコマンドを表示しています。
コピー
無料で始める · クレジットカード不要
関連: ガイド|Webマーケティングと集客を学ぶ
製品
ご利用いただける方
機能
リソース
会社情報
サイトマップを見る