ポート

ネットワーク通信でプロセスを識別する番号で、TCP/UDP の接続先を指定する

ネットワーク基礎

ポートとは

ポートは、ネットワーク通信でプロセスを識別する 0〜65535 の番号で、IP アドレスと組み合わせて通信先を特定する。IP アドレスが「建物の住所」なら、ポートは「部屋番号」。

ポート番号の分類

ポート番号の分類を以下に示す。

範囲名称
0〜1023ウェルノウンポート80 (HTTP), 443 (HTTPS)
1024〜49151登録済みポート3000 (開発サーバー), 5432 (PostgreSQL)
49152〜65535動的ポートOS が自動割り当て

主要なポート番号

主要なポート番号を以下にまとめる。

ポートプロトコル用途
22SSHリモートログイン
53DNS名前解決
80HTTPWeb (非暗号化)
443HTTPSWeb (暗号化)
3306MySQLデータベース
5432PostgreSQLデータベース
6379Redisキャッシュ
8080HTTP (代替)開発サーバー

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 等を使用

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

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

関連用語

関連する記事