ポート

ネットワーク通信でプロセスを識別する番号で、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 等を使用

理論と実装の両面から学ぶなら関連書籍が参考になる。

関連用語