メインコンテンツまでスキップ

5_3_ポート

通信の基本:ポート、IPアドレス、SSH など

1. IPアドレスとは?

IPアドレス(Internet Protocol Address)は、インターネットやネットワーク上でデバイスを識別する番号です。
例えば、あなたのPCやスマホがインターネットに接続すると、IPアドレスが割り当てられます。

IPアドレスの種類

種類説明
IPv4例:192.168.1.1(32ビット)
IPv6例:2001:db8::ff00:42:8329(128ビット)

グローバルIP vs プライベートIP

種類説明
グローバルIPインターネットに直接接続される203.0.113.1
プライベートIPLAN内(ローカルネットワーク)でのみ使う192.168.1.1

2. ポートとは?

ポートは、通信の「窓口」 のようなもの。
IPアドレスが「どのコンピュータと通信するか」を決めるのに対し、ポートは「どのアプリケーションと通信するか」を決めます。

よく使われるポート番号

ポート番号プロトコル用途
22SSHリモート接続
80HTTPWebサイト(暗号化なし)
443HTTPSWebサイト(暗号化あり)
3306MySQLデータベース
5432PostgreSQLデータベース
6379RedisキャッシュDB
27017MongoDBNoSQLデータベース

ポートの種類

ポート範囲用途
0 - 1023ウェルノウンポート(HTTP, SSH など)
1024 - 49151登録済みポート(アプリケーション専用)
49152 - 65535エフェメラルポート(動的に割り当て)

3. SSHとは?

SSH(Secure Shell)は、リモートのコンピュータを安全に操作するためのプロトコル です。

SSHの基本的な使い方

  1. リモートサーバーに接続

    ssh ユーザー名@サーバーのIPアドレス

    例:

    ssh ubuntu@192.168.1.10
  2. ポート指定(デフォルトは22番)

    ssh -p 2222 ubuntu@192.168.1.10
  3. 公開鍵認証(パスワードなしでログイン)

    ssh-keygen -t rsa
    ssh-copy-id ubuntu@192.168.1.10

    これにより、パスワードなしでSSH接続できる。


4. ネットワーク通信の基本(IP・ポートの役割)

ネットワーク通信は、「IPアドレス + ポート番号」の組み合わせでデータを送受信します。

通信の流れ

  1. PC(192.168.1.5:50000)がWebサーバー(203.0.113.1:80)にアクセス
  2. Webサーバーは、HTTP(ポート80)でレスポンスを返す
  3. PCは、レスポンスを受信し、ブラウザに表示
curl http://203.0.113.1

これは、203.0.113.1の80番ポートに接続して、Webページのデータを取得する動作。

通信のイメージ

PC(192.168.1.5:50000) → Webサーバー(203.0.113.1:80)

このように、送信元のIPアドレス+ポート宛先のIPアドレス+ポート を組み合わせて通信します。


5. ファイアウォールとポートの管理

ポートが開いているか確認

netstat -tulnp   # Linux
lsof -i -P -n # Mac

ポート開放(Linux - UFW)

sudo ufw allow 22  # SSH許可
sudo ufw allow 80 # HTTP許可
sudo ufw enable # ファイアウォールを有効化

ポート開放(AWSセキュリティグループ)

  • AWSでは「セキュリティグループ」でポートを開ける。

6. まとめ

IPアドレスは、ネットワーク上の住所(例:192.168.1.1
ポートは、アプリケーションの通信窓口(例:SSHは22番、HTTPは80番)
SSHは、サーバーをリモート操作するためのプロトコル(ポート22)
通信は「IPアドレス+ポート」の組み合わせで行われる
ファイアウォールでポートを管理し、セキュリティを確保する

これらを理解すると、サーバーの設定やネットワークのトラブルシューティングがスムーズに行えます! 🚀