ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
エラーの状況
# Tomcat
SEVERE: StandardServer.await: create[localhost:8005]:
java.net.BindException: アドレスは既に使用中です (Bind failed)
# Spring Boot
Web server failed to start. Port 8080 was already in use.
# Node.js / Express
Error: listen EADDRINUSE: address already in use :::3000
# Python
OSError: [Errno 48] Address already in use
競合プロセスの特定
Linux / Mac
# lsof (推奨)
$ sudo lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 1234 tomcat 46u IPv6 ... 0t0 TCP *:http-alt (LISTEN)
# ss (より新しい)
$ sudo ss -tnlp | grep :8080
LISTEN 0 100 *:8080 *:* users:(("java",pid=1234,fd=46))
# netstat (古い)
$ sudo netstat -tnlp | grep :8080
tcp6 0 0 :::8080 :::* LISTEN 1234/java
# プロセスの詳細
$ ps -fp 1234
UID PID PPID C STIME TTY TIME CMD
tomcat 1234 1 0 May15 ? 00:00:30 /usr/bin/java -jar tomcat...
Windows
# netstat
> netstat -ano | findstr :8080
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1234
# プロセス特定
> tasklist /FI "PID eq 1234"
イメージ名 PID セッション名 セッション# メモリ使用量
java.exe 1234 Services 0 512,000 K
# PowerShell
PS> Get-Process -Id (Get-NetTCPConnection -LocalPort 8080).OwningProcess
競合プロセスの停止
Linux / Mac
# graceful 停止 (推奨)
$ sudo kill 1234
# 強制停止 (応答しない場合)
$ sudo kill -9 1234
# プロセス名で
$ pkill java
$ pkill -f "tomcat"
# 1 行で
$ sudo kill $(lsof -t -i:8080)
Windows
# taskkill
> taskkill /PID 1234 /F
# プロセス名で
> taskkill /IM java.exe /F
# PowerShell
PS> Stop-Process -Id 1234 -Force
別ポートに変更
Tomcat
Spring Boot
# application.properties
server.port=9090
# または環境変数
$ SERVER_PORT=9090 java -jar app.jar
# コマンドライン
$ java -jar app.jar --server.port=9090
# 自動空きポート (ランダム)
server.port=0
Node.js / Express
// 環境変数で
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`Listening on ${port}`));
// 起動
PORT=4000 node server.js
// 自動空きポート
const server = app.listen(0, () => {
console.log(`Listening on ${server.address().port}`);
});
Python (Flask / FastAPI)
# Flask
if __name__ == "__main__":
app.run(port=5001) # デフォルト 5000
# uvicorn (FastAPI)
$ uvicorn main:app --port 8001
# gunicorn
$ gunicorn -b 0.0.0.0:8001 myapp:app
よく使われるポート番号
| ポート | 用途 |
|---|---|
| 22 | SSH |
| 25 | SMTP (メール送信) |
| 80 | HTTP |
| 443 | HTTPS |
| 3306 | MySQL |
| 5432 | PostgreSQL |
| 27017 | MongoDB |
| 6379 | Redis |
| 8080 | Tomcat / 開発用 HTTP |
| 8443 | Tomcat HTTPS |
| 3000 | Node.js / React 開発サーバ |
| 5173 | Vite 開発サーバ |
| 9000 | PHP-FPM / Jenkins |
| 9200 | Elasticsearch |
| 5000 | Flask |
| 8000 | Django |
1024 番未満のポート
1-1023 番はwell-known portsで、root 権限が必要:
# 一般ユーザで 80 ポート起動を試みる
$ java -jar app.jar --server.port=80
java.net.SocketException: Permission denied
# 対処 1: sudo で起動 (非推奨、セキュリティリスク)
$ sudo java -jar app.jar --server.port=80
# 対処 2: setcap で権限付与 (Linux)
$ sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/java
# 対処 3: 別ポート + iptables / nginx でリバースプロキシ
$ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
# または nginx で 80 → 8080 へ転送 (推奨)
Docker 環境での競合
# Docker コンテナ間のポート衝突
$ docker run -p 8080:8080 myapp1
$ docker run -p 8080:8080 myapp2
# → docker: Error response from daemon: ports are not available
# 対処: ホスト側ポートを別に
$ docker run -p 8081:8080 myapp2 # ホスト 8081 → コンテナ 8080
# docker-compose
services:
app1:
ports:
- "8080:8080"
app2:
ports:
- "8081:8080"
# 使用中ポート確認
$ docker ps
TIME_WAIT 状態
サーバ再起動直後にポートが「TIME_WAIT」で使えないことがある:
# TIME_WAIT のソケット確認
$ netstat -an | grep :8080
tcp 0 0 :::8080 :::* TIME_WAIT
# Linux カーネル設定で再利用許可
$ sudo sysctl -w net.ipv4.tcp_tw_reuse=1
# アプリ側で SO_REUSEADDR を有効化
# Java の場合
ServerSocket server = new ServerSocket();
server.setReuseAddress(true);
server.bind(new InetSocketAddress(8080));
# Spring Boot は内部で設定済み (通常気にしなくて良い)
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- インストール方法
- ポート番号の競合
- ドキュメントルート(htdocs)の変更方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?