https://networkengineering.stackexchange.com/a/57909/ によると、192.168.1.97に送信されたパケットは「ホストを離れませんが、アドレス指定されたネットワークから受信したパケットのように扱われます192.168.1.97に」したがって、パケットを送信して127.0.0.1をループバックするのと同じです。
nmap 127.0.0.1
がnmap 192.168.1.97
より多くのサービスを返すのはなぜですか?
nmap 127.0.0.1
は、nmap 192.168.1.97
によって返されたサービスも必ず返しますか? 192.168.1.97
でリッスンしているサーバーは、必然的に127.0.0.1
でもリッスンしますか?
$ nmap -p0-65535 192.168.1.97
Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-23 19:18 EDT
Nmap scan report for ocean (192.168.1.97)
Host is up (0.00039s latency).
Not shown: 65532 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
3306/tcp open mysql
33060/tcp open mysqlx
Nmap done: 1 IP address (1 Host up) scanned in 9.55 seconds
$ nmap -p0-65535 localhost
Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-23 19:18 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00033s latency).
Other addresses for localhost (not scanned):
Not shown: 65529 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
631/tcp open ipp
3306/tcp open mysql
5432/tcp open postgresql
9050/tcp open tor-socks
33060/tcp open mysqlx
Nmap done: 1 IP address (1 Host up) scanned in 5.39 seconds
ありがとう。
つまり、これらは2つの異なるインターフェース(192.168.1.97と127.0.0.1)であり、異なるファイアウォールルールが適用されているか、サービスがリッスンしている可能性があります。同じマシン上にいることは、ほとんど意味がありません。
いいえ、外部インターフェースのポートをリッスンするサービスは、必ずしもlocalhost
のポートもリッスンするとは限りません。
あなたは次のようなものでこれをテストすることができます
nc -l external-ip-address port-number
次に、nmap
をlocalhost
に対して実行し、次に外部IPアドレスに対して実行します。
nmap 127.0.0.1がnmap 192.168.1.97より多くのサービスを返すのはなぜですか?
セキュリティを向上させるために、多くのサービスはデフォルトで127.0.0.1(またはIPv6と同等:: 1)でのみリッスンするように構成されているため
192.168.1.97でリッスンするサーバーは、必ず127.0.0.1でもリッスンしますか?
番号
通常、サービスは、待機するリスニングソケットを作成できます。
RFC1122 のとおり、127タイプのアドレスは内部専用です。
内部ホストループバックアドレス。このフォームのアドレスはホストの外に現れてはいけません。
つまり、これらのサービスはローカルでリッスンしています。 192.168.1.97
はあなたの公開アドレスであり、ルーターや他のコンピュータがあなたを知っている方法です。ある意味で127.0.0.1/8は、ネットワークの「シミュレーション」です。これを使ってテストしたり、ローカルサービスを実行したり、ローカルサービス間でパケットを交換したりできます。これは、実際のインターネットリソースで行うのと基本的に同じことです。実際、それが Web開発者が行うこと です。彼らはローカル環境をセットアップし、XAMPまたはLAMPスタックをローカルで実行してから、洗練された製品が実際にインターネットに直面する本番環境に移行します。
これで、eth0やwlan0などのパブリック向けインターフェイスで127.x.x.xタイプのアドレスからパケットを受信することはありません。その場合、これは 火星のパケット と呼ばれ、誰かがホストまたはネットワークを攻撃しようとしている可能性があります。
ある意味では、ルーターとコンピューターの間の類似点にすることができます。 LANでは、ルーターのアドレスは192.168.1.0ですが、インターネットでは68.125.xx.yyと呼ばれています(ディスクラマー:ランダムな例。ここでは実際のIPアドレスではありません)。ルーターはインターネットのみのポート53(DNS)に公開する場合がありますが、内部的にはポート80(HTTPコントロールパネル)と53を使用できます。コンピューターについても同じ考えです。
もちろん、サービスは、パブリックインターフェイスまたはローカルインターフェイスでのみリッスンするように構成する必要があります。たとえば、 Redis server は、セキュリティ上の理由から、127.0.0.1でのみリッスンするように事前構成されています。
こちらもご覧ください