ポート
ネットワーク通信でプロセスを識別する番号で、TCP/UDP の接続先を指定する
ポートとは
ポートは、ネットワーク通信でプロセスを識別する 0〜65535 の番号で、IP アドレスと組み合わせて通信先を特定する。IP アドレスが「建物の住所」なら、ポートは「部屋番号」。
ポート番号の分類
ポート番号の分類を以下に示す。
| 範囲 | 名称 | 例 |
|---|---|---|
| 0〜1023 | ウェルノウンポート | 80 (HTTP), 443 (HTTPS) |
| 1024〜49151 | 登録済みポート | 3000 (開発サーバー), 5432 (PostgreSQL) |
| 49152〜65535 | 動的ポート | OS が自動割り当て |
主要なポート番号
主要なポート番号を以下にまとめる。
| ポート | プロトコル | 用途 |
|---|---|---|
| 22 | SSH | リモートログイン |
| 53 | DNS | 名前解決 |
| 80 | HTTP | Web (非暗号化) |
| 443 | HTTPS | Web (暗号化) |
| 3306 | MySQL | データベース |
| 5432 | PostgreSQL | データベース |
| 6379 | Redis | キャッシュ |
| 8080 | HTTP (代替) | 開発サーバー |
Lambda とポート
Lambda はサーバーレスのため、ポートの概念がない。API Gateway がポート 443 (HTTPS) でリクエストを受け、Lambda を呼び出す。
クライアント → API Gateway (:443) → Lambda (ポートなし)
ポートの確認
ポートの確認の例を示す。
# 使用中のポートを確認
lsof -i :3000
# COMMAND PID USER FD TYPE DEVICE NODE NAME
# node 1234 user 22u IPv6 TCP *:3000 (LISTEN)
# ポートが開いているか確認
nc -zv localhost 3000
ポートフォワーディング
ポートフォワーディングの例を示す。
# ローカルの 8080 をリモートの 80 に転送
ssh -L 8080:localhost:80 user@remote-server
# localhost:8080 でリモートの Web サーバーにアクセス
よくある問題
よくある問題を以下にまとめる。
| 問題 | 対策 |
|---|---|
| ポートが既に使用中 | lsof -i :PORT で確認、プロセスを停止 |
| ファイアウォールでブロック | セキュリティグループのインバウンドルールを確認 |
| 権限エラー (1024 未満) | root 権限が必要、または 8080 等を使用 |
理論と実装の両面から学ぶなら関連書籍が参考になる。
この記事は役に立ちましたか?
関連用語
TCP/IP
インターネット通信の基盤となるプロトコル群で、データの分割・送信・再組立を信頼性高く行う
DNS
ドメイン名を IP アドレスに変換するインターネットの名前解決システム
VPC
AWS 上に論理的に隔離されたプライベートネットワークを構築するサービス
CSP レポート
Content Security Policy 違反をブラウザがサーバーに自動報告し、XSS やデータ漏洩を検知する仕組み
ポートとアダプター
アプリケーションのコアロジックを外部技術から分離し、ポート (インターフェース) とアダプター (実装) で接続するアーキテクチャ
ロングポーリング
サーバーがデータの準備ができるまでレスポンスを保留し、擬似的なリアルタイム通信を実現する手法
関連する記事
README を書くように本を読む - エンジニアのための構造化読書法
エンジニアが日常的に書く README のフォーマットを読書に応用する方法を紹介します。目的・使い方・注意点の 3 点で本の内容を整理すると、知識の再利用性が飛躍的に高まります。
技術書の読書ノート術 - 付箋・マーカー・デジタルの使い分け
技術書を読むときのノートの取り方を比較します。付箋派、マーカー派、デジタルノート派、それぞれの長所と短所を実体験をもとに紹介します。
技術書の読書ログを GitHub で管理する - エンジニアらしい記録法
技術書の読書記録を GitHub リポジトリで管理する方法を紹介します。Markdown で読書ノートを書き、コミット履歴で読書の軌跡を残す、エンジニアならではの読書ログ術です。