(14) ポート番号 (Port Number)

IPアドレスはコンピュータの住所であり、ポート番号は、マンションやアパートでいう部屋番号にあたります。

時々「ポート番号を開ける」や「ポート番号を閉める」といった言葉が出てきますが、アパートの部屋の入り口を開けるのが「ポート番号を開ける」ことであり、
逆にアパートの入り口を閉めてカギをかけるのが「ポート番号を閉める」ということになります。



一般のユーザーはルーターを経由してインターネットに接続しています。
最近はモデムにルーターを内蔵することが多く、別にルーターを買う必要もなくなっています。

ルーターを介してインターネットにつなぐとき、グローバルIPはルーターに割り当てられます。
LANの中のパソコンはプライベートIPが割り振られ、インターネットに接続するときはルーターがグローバルIPとプライベートIPの変換を行ってくれます。

ここで問題になるのが、外部からLANの中のサーバーへ接続しようとしたときです。
外からグローバルIPでサーバーにアクセスしようとしても、ルーターはLANの中のどのパソコンを呼び出せばいいのか分からない。
だから、何も設定しないと外部からのアクセスはルーターで止まってしまうのです。

そこで必要になるのが「ポートを開ける」という作業です。
特定のポート番号に対して外部から接続があったとき、指定しておいたプライベートIPのパソコンに接続を中継することになります。



利用するポート番号はアプリケーションごとに決まっています。
ウェブサーバーを公開するなら「80」、メールサーバーなら「25」「110」、FTPサーバーなら「20」「21」というように、
公開するサーバーの種類に応じて設定を追加していくようにします。



                                                                                                        その他のポート

ポートの開放手順

ここでは、NTTのフレッツ光回線用として広く使われている「RT-2400KI」を例に設定方法を説明します。

ルーターの設定画面を開く。ブラウザに「192.168.1.1」と入力すると設定画面が開きます。
左側の「詳細設定」メニューの中から「ルータ設定」→「NAPT設定」を選択します。右側にポート開放画面が表示されます。

マックアドレス及び固定設定したIPを元にポート開放設定を行います。

以下の静的NAPT設定(ポート転送規則)項目全てに入力します。



▲割り当てWAN側受信ポート範囲 5631番を開放する場合 「5631」~「5631」を指定
広範囲に指定する場合は「5631」~「5632」 この様にすると5631から5632まで開きます。
さらに開放が必要な場合は細かく追加指定してください。

▲プロトコル種別 TCP 又は UDP を選択します。
サーバ関係ファイル転送関係は概ねTCPを指定 ゲーム関係の場合はUDPも併せて開放する場合もあります。
それぞれ細かく追加設定します。

▲LAN側転送ポート 割り当てWAN側受信ポート範囲で指定したポート番号を指定します。
例:5631
入力出来ましたら【追加】をクリックします。

複数ポート設定したサンプルです。
もし間違いがある場合は【変更】や【削除】を選択し、設定を修正、削除の上再度設定します。

最後に設定を反映させます。
確認→送信→反映 をクリックしルータを再起動します。




ポート番号 port number

ポート番号とは、インターネット上の通信において、複数の相手と同時に接続を行なうためにIPアドレスの下に設けられたサブ(補助)アドレスのことです。

例えば、1台のコンピューター上で複数のアプリケーションが動いている場合、IPアドレスだけでは、通信相手となるアプリケーションを特定できません。
そこで、アプリケーションごとに便宜的な数字を1個割り当て、受け取ったパケットをどのアプリケーションに引き渡すべきかをコンピューターに判断させます。
この時割り当てられる番号が「ポート」、または「ポート番号」です。

ポートの指定には0から65535までの数字が使われます。
IPアドレスとポートを組み合わせたネットワークアドレスを「ソケット」と呼び、実際にはデータの送受信はソケット単位で行われます。
この時、Webサーバーは80番といった具合に、代表的なネットワークアプリケーションのポート番号はIANAによって定められています。

よく知られているのは HTTP の80、FTP の21、SMTP の25、POP3 の110などです。
これらは「well-known port (よく知られたポート)」と言われ、事実上の標準となっています。
プロトコル名とポート番号の対応は、UNIX なら /etc/services にあります。
Windows なら C:\windows\servicesにあります。
ここに載っているプロトコルはほとんど「well-known port」です。

なお、ポート番号は1から65535までの値しか指定することができません。

これは、TCP セグメント (パケット) の中の、ポートを表す領域が 16 bit しかないからです。

HTTP を例にあげると…HTTP サーバ (Webサーバ) はポート80番を常に見張っています。
クライアント(ブラウザ)は、/etc/service のポート対応表を見て HTTP のポート番号が80であることを知り、指定されたホストのポート 80 番に接続 (connect) します。
そしてクライアントは HTTP サーバに「このURLのデータを送ってくれ」というリクエストを送ります。
HTTP サーバは指定のデータを送り返し、ブラウザはそれを画面に表示するわけです。

注意したいのは、OS が面倒を見るのはサーバへの接続とデータのやりとりだけであることです。
OS はクライアントとサーバの間で通信されるデータの内容には干渉しません。
ゆえに通信内容や通信の手順については、クライアントとサーバの間で事前に決めておかなくてはなりません。
この取り決めをプロトコルと言います。
例えば HTTP サーバとデータのやりとりをする場合、HTTP プロトコルについて知らなくてはなりません。






Home Page