ポート

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

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

この記事は役に立ちましたか?

関連用語

関連する記事