「3000番で起動しているので、localhost:3000 を開いてください」「443だけ開けておいてください」。開発やサーバーの話で出てくるこの数字が、ポート番号です。
ポート番号は、同じ住所に届いた通信を、どの受付に回すかを決める番号です。IPアドレスが建物の住所だとすると、住所だけでは建物の前までしか着けません。営業窓口、配送窓口、総合受付のどこへ用件を出すかを示すのがポート番号で、内線番号のような役割をしています。だから1台のサーバーでも、Webの表示、メールの受信、管理画面などを番号で分けて扱えます。
よく見かけるのは、Webサイトの公開に使う 80(HTTP)と 443(HTTPS)、開発中のアプリを起動するときの 3000 や 8080 あたりです。
つながらないときは三か所を順に見る
サーバーは動いているはずなのに、つながらない。こういうとき、原因はだいたい次のどこかにあります。
- アプリそのものが起動しているか
- アプリが待ち受けている番号と、接続しに行っている番号が合っているか
- ファイアウォールが、その番号への通信を止めていないか
アプリの設定、サーバーの設定、ファイアウォールの設定で番号がそろっていないと、どれか一つが正しくても通信は届きません。サービスが止まっているのか、途中で遮断されているのかを、この順で切り分けます。
開けた番号は外への入口になる
ポートを開けるというのは、その番号で待ち受けているサービスを外部へ出すことです。入口が増えれば、そのぶん狙われる場所も増えます。外部に公開するポートは必要最小限にしましょう。
よく知られた番号を別の番号へ変えるだけで安全になる、と考えるのも早計です。番号は「どの窓口か」を示す目印にすぎず、窓口の奥を守るのは認証やアプリの設定、監視の仕事です。
