No.1
- 回答日時:
以前は、双方が80番ポートを開いて通信するのが当たり前でした。
しかし、それをやってしまうと、自宅に複数のPCがある場合、グローバルIPアドレスが複数必要になります。
これが「IPアドレスの枯渇問題」なのですが、それで誕生したのが「IPv6」です。
しかし、その後に技術が発達し、クライアント側は事前にwebサーバーに対して、ポート番号を知らせることで、クライアント側のポート番号は自由に変えられるようになりました。
これにより自宅のIPアドレスは「192.168.1.XX」といった感じで持ち、グローバルIPアドレスは1つだけで済むようになりました。
この回答への補足
勉強不足で理解しにくい部分があるのですが、次のように理解しました。
こちらの80番ポートは様々なアプリで使われて競合するおそれがあるので、
80番ポートでのやり取りを希望したアプリに対してサーバ側が別のポートを指定する。
それを、そのアプリが別のポートで送受信を行うことを受諾してパケットの送受信が可能となる。
疑問が生じたのですが、
・ポート番号を自由に変えられるのは、セキュリティーの問題や他のアプリとの競合が発生する問題はないのですか?
・IPアドレスの枯渇とポート番号の変更はどのような関係があるのでしょうか?
No.2
- 回答日時:
一般的に固定のポート番号を使うのはサーバだけで、クライアントは接続の際に空いている適当なポート番号(1024~65535の適当な値)を使います。
通常のルータなどで設定してポートを開けておく必要があるのはサーバを立てるときだけです。ゲームなどでUDPを使うものだとUDPポートを開けておく必要があるかもしれませんが。# TCP80番はWebサーバがhttpを受け付ける標準のポート番号です
ftpは特殊で元々はデータ転送時にサーバからクライアントにつなぎに行くのでポートを開けておく必要がありましたが、これもパッシブモードでは必要なくなりました。
自環境で中継しているルータの数ですが、適当な外部サイトへtracerouteコマンド(tracert)を打てば中継ルータがリストアップされるので、最初のグローバルIPの手前までが自LAN内での中継でしょう。
# 最近はtracerouteを遮断していることも多いですけど
この回答への補足
サーバとクライアントを混同していたように思えます。
上の問題は解決出来ました。
tracerouteを使って調べましたが、
1 <1 ms <1 ms <1 ms 192.168.0.1
2 1 ms <1 ms 1 ms 192.168.24.1
以下略
となっており、LANが二重になっていると思われますがこのパソコンの情報はipconfigでIPアドレス、サブネットマスクは分かりますが、
このパソコンから数えて1つめに経由したルータの一重目のLANにおけるIPアドレス、サブネットマスクはどのようにして調べるのでしょうか。
No.3
- 回答日時:
インターネット上の不通の(TCP/IP という)接続では、サーバー(こっちがサービスを提供する方)とクライアント(こっちはサービスを受ける方)があります。
通常、「ポート解放」関連で話題にするのは、「サーバー側」のポートです。
ですから、自宅から、どこかの web ページを見に行く場合(こちらはクライアント)には、ポート解放は気にする必要はありません。
この接続の場合、
・クライアント側(サーバーを見ようとする方)が、自分のポートをひとつ準備して、サーバー側の、特定のポートに接続を求める
・サーバー側(ページを提供する方)は、自分が開放しているポート(Web なら、多くの場合は 80番)に接続要求があった場合に、接続に応答して、クライアントの要求に備える
という手順を踏みます。
ここで、サーバー側のポートは、こちらから指定する必要がありますから、あらかじめわかっている必要があります。
このため、(Web なら 80番というように)それぞれのサービスに対して、決まったポート番号を使う場合が多いのです。
(そうでない場合もあり得ます)
さて、セキュリティで怖いのは、「サービスを要求する方」よりも、「サービスを提供する方(サーバー)」です。
クライアント側は、つなぐ意志がある場合につなぎますが、そうでない倍にはつなぎません(ウイルスなどに感染した場合には、この前提が崩れるので、クライアント側でも怖い)
サーバー側は、「80番でつないで」と要求されれば、とりあえず、それに答えなければなりません。
ですから、「どこのどんなやつがつないでくるかわからない」訳です。
ですから、サーバーのセキュリティにはかなり力を入れます。
一方で、家庭のパソコンが、「単に情報を見に行くだけ」であれば、外からの接続要求はありません。
このために、「外に向かって開いている(サーバーとしての)ポートは極力閉じましょう」ということになります。
ですから、「読みに行く方」は、ポートを開いておく必要はありません。
(というか、読みに行くときに、あいているポートを自分で選んで使います)
パーソナルファイアウォールなどでも、この、「クライアント側(読みに行く方)のポートは気にしません。
サーバー側(データのありかを指定する)のポートを気にします。
ですから、「ポート解放」は、「間違って自分の方で、サーバーとしてのポートを開放していないか」の確認で、クライアントとしてのポートは問題ないということです。
もともと、インターネットの仕組み自体が、最初に接続を要求するのはどちらかという分類があり(接続した後は、双方向に通信できます)接続を要求する方(=クライアント)のポートは、自由に選択できます。
これに対して、接続を受ける方(=サーバ)のポートは、「クライアント側が事前に指定しなければならい」=「サーバー側はあらかじめ解放しておかなければならない」のです。
ありがとうございます。大変良く分かりました。
疑問に思ったことは、
こちらがルータを使っていて、サーバに接続要求するためにアプリがこちら側のポートを指定する時、
そのポートはルータに指定しておかないとサーバから送られたデータを受信出来ないと思いますが、
アプリが随時パソコンやルータのポートを閉じたり開いたりしているのでしょうか。
No.4
- 回答日時:
補足ありがとうございました。
クライアント側
(ローカルIP:ポート)LAN(グローバルIP:ポート) WAN(サーバー側:ポート)
192.168.1.20:80<------->219.53.219.XXX:1000<------>www.xxx.com:80
192.168.1.30:80<------->219.53.219.XXX:1100<------>www.xxx.com:80
LAN内でローカルIPからグローバルIPへ変換するのがルーターの役割になります。
「IPアドレスとポート番号」が、番地(住所)のようなもので重複が許されません。
また、サーバーとクライアントで意識するのはWAN上のIPアドレスとポート番号です.
サーバーはクライアントからの要求があって初めて送信を行います。
その時にクライアントは、自分のポート番号を通知します。(1000,1100)
あくまでも自分のポート番号を決めるのはクライアント側です。
グローバルIPアドレスは、個々の自宅(?)により違いますので、それぞれの宅内でポート番号が重複しない限り、問題は起こりません。
セキュリティーに関しては、ルーターで開いたポートに対するサーバー以外からの受信を拒否する仕組みになっています。
No.5ベストアンサー
- 回答日時:
ルータが行うポートに関する制御というのは、「こちらがサーバーとして指定されたときに、開放されていないポートへの接続要求なら、接続を拒否する」というだけのことです。
こちらが接続要求を行う場合(つまり、クライアントとして設定したポート)については、一切関知しません。
また、クライアントとして、相手のサーバーのポートを指定したとして、このポートも一切関知しません。
(関知する場合もありますが)
さて、「ポートが開放されている」というのはそもそもどういう場合でしょう?
これは、たとえば、「ポート開放確認くん」などのサイトが、あなたの自宅のパソコン(実際にはルータ)に対して、80番で接続要求をします。そして、接続が成立したとしたら、80番ポートは開放されているということになります。
一方で、こちらから、サーバーにアクセする場合、「自宅のパソコンに対して、80番で接続要求を出す」ということは、(普通は)ありません。
だから、自宅にサーバがあるのでなければ、ポートを開放する必要はないのです。
どちらに対して接続要求を行うか、そして、その(ルータが制御する)ポートは、どちらに(接続要求を行う側=クライアント or 接続要求されるほう=サーバー)割り当てられたものかを認識すれば、混乱はなくなると思います。
また、各ルータのLAN設定ですが、それは、ルータのLAN設定を確認するしかありません。
自分のパソコンの、デフォルトゲートウエイが、通常最初のルータになっているはずです。
最近のルータであれば、http://(その IP アドレス)で、設定画面が見られます。
(ID・パスワード必要だと思いますが)
そこで確認したものが、そのルータがゲートウエイとして使用しているルータのアドレスになりますので、同じように、そのルータの設定を確認するという流れになります。
> tracerouteを使って調べましたが、
> 1 <1 ms <1 ms <1 ms 192.168.0.1
> 2 1 ms <1 ms 1 ms 192.168.24.1
であれば(普通は)
最初のルータ
IP address : 192.168.0.1
サブネットマスク : 255.255.255.0 (192.168 はクラスCのアドレスなので、これはほぼ確定)
次のルータ
IP address : 192.168.24.1
サブネットマスク : 255.255.255.0
です。
あと、パソコンが、Web を見に行くときに、こちら側のポート番号として、80番を使うことはまずありません。(絶対なかったかな?)
クライアント側のポート番号は、その時点でそのパソコンが使ってないポート番号から、勝手に選びます。
なので、そもそもそ、クライアント側のポート番号を、あらかじめ知っていて解放するなどということも不可能です。
※そうでなければ、ひとつのパソコンから、同時に2つのWeb ページが見られなくなります。
クライアント側で指定するポート番号は、重なってはならないので。
サーバー側は、80番に接続要求を出したのが、どの IP address の、どのポート番号を使っているかを組み合わせて識別します。
ですから、ひとつのパソコンから、同時に、同じサイトに接続しても、クライアント側のポート番号によって、別々のページを混乱なく表示できるわけです。
接続要求をする側とされる側をまた分けないといけなかったのですね。
理解したと思ったのにまだサーバとクライアントを混同していたようです。
No.6
- 回答日時:
ANo.1=ANo.4さんの回答には勘違いが含まれているように思います。
ANo.4の例でクライアント側ポート番号に80番を使っていますが、Webにおいてクライアント側に80番を使うことはありません。
# OSによっても違うが1023番以下の番号はOSでサーバ用に予約されていて
# クライアントアクセスで指定することはできなかったりする
TCP/IPの通信は(相手IPアドレス、相手ポート番号、自分IPアドレス、自分ポート番号)の4つ組で識別されます。通信はクライアントから開始するわけですが、そのとき自分IPアドレスは分かっていますし自分ポート番号は使っていない番号をOSから貰えばよいですが、相手IPアドレスと相手ポート番号はサーバから指定されたものを使います。IPアドレスは当然サーバごとに異なりますが、ポート番号は共通で構わないので通常は80番を使うことになっています。
なお、家庭用ルータに入っているローカルIPアドレスをルータ自身のグローバルIPアドレスに置き換えて通信する機能はNAT等と呼ばれ、家庭用ルータでは一般的ですが全てのルータにある機能ではありません。
NAT機能では、LAN内のパソコン等から開始するTCP/IP通信について、外部にルータ自身が開始したかのように装って通信し、その応答を元のパソコン等のローカルIPアドレス、ポート番号に変換して返します。
逆に外部から開始されてルータに送られた通信は、LANのどのパソコン等に送るか決められないためどこにも送られません。これを送れるようにするためにはどのポート番号への通信をどのパソコンに送るかというポート設定が必要です。
最後にフレッツ光を使っているようでしたら二重ルータはトラブルの原因になりますので、自分のルータをブリッジ設定にするなどして二重ルータを解消した方が良いでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ルーター・ネットワーク機器 YAMAHAルータ設定について 1 2022/09/03 16:31
- Wi-Fi・無線LAN 30メートル以上離れた家屋に無線LAN環境構築方法 7 2022/09/18 18:08
- ルーター・ネットワーク機器 ひとつのスイッチでルーターの冗長化を複数させたい 1 2023/04/12 22:46
- その他(悩み相談・人生相談) ファイル共有ソフトshareについて 1 2023/06/20 04:03
- ルーター・ネットワーク機器 AU光10G回線について 6 2022/07/25 00:12
- ルーター・ネットワーク機器 一軒家の自宅を購入し、1階にリビングにOUNを設置しました。私は2階の部屋で有線LAN接続してパソコ 5 2023/06/09 23:08
- Wi-Fi・無線LAN Wi-Fi ルータの選択基準について 7 2023/05/29 09:42
- オンラインゲーム とても急いでいます。Minecraft Java版についてです。 MinecraftのJava版でマ 1 2023/03/15 21:19
- Wi-Fi・無線LAN USBーイーサネット変換器について 4 2022/06/19 15:16
- Wi-Fi・無線LAN wifiルータ 5 2023/01/15 19:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
8000番や8080番のポー...
-
Windows10におけるUSB-RS232C機...
-
Dell Inspiron 14 5415 をコン...
-
マザーボードにSATAのHDDを接続...
-
ポートの80と443
-
スイッチのポート番号について
-
UPnPCJでポート開放、閉鎖をし...
-
分かりません。どなたか教えて...
-
バンジージャンプのデータを貰...
-
コマンドプロンプトで、ポート...
-
PCのUSBポートの不具合と対処法...
-
USBメモリ増設アダプターについて
-
Supermodelのエミュレーターに...
-
8080ってなんですか?
-
マザーボードに取り付けたハー...
-
USBポートの無いPCでUSB機器を使用
-
プリンタのUSB接続について(LP...
-
ワイヤレスマウスUSBレシーバー...
-
来月カンボジアのシェムリアッ...
-
RS-232Cコネクタ付きマザーボード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
8000番や8080番のポー...
-
Windows10におけるUSB-RS232C機...
-
ワイヤレスマウスUSBレシーバー...
-
USBメモリ増設アダプターについて
-
スイッチのポート番号について
-
PCのUSBポートの不具合と対処法...
-
ポートの80と443
-
ポート80、443を開けろと言われ...
-
コマンドプロンプトで、ポート...
-
Dell Inspiron 14 5415 をコン...
-
Supermodelのエミュレーターに...
-
バンジージャンプのデータを貰...
-
ポート80を閉じたいのですが
-
EXCEL VBAで、PnPでCOMポート番...
-
縦続 と 直列
-
マンションHUB交換について
-
無線LANルータのアクセスログの...
-
microsoft-ds(445)とnetbios(13...
-
サーバーにLANポートが多いとど...
-
マザーボードにSATAのHDDを接続...
おすすめ情報