Netstatローカルアドレス列の意味


20

私がやるnetstat -ntlpと、と呼ばれる列がありますLocal Address

  • 時々それはIPアドレスを出力します 0.0.0.0:7180
  • そして時折 127.0.0.1:9001

両方の表記法の意味は何ですか?

特定のIPアドレスは、着信接続のフィルターのように機能しますか?たとえば、127.0.0.1:9001ポート9001のローカルホストからの接続のみを受け入れますか?

回答:


13

あなたはあなた自身の質問に答えたと思います。

例として、apacheそれの持っているListenのを聞くためにどのアドレスとポートにそれを伝えるオプションを選択します。これがどのように設定されているかに応じてapache、任意のIPアドレス、特定のアドレスでリッスンします:

Listen *:80
Listen 0.0.0.0:80
Listen 127.0.0.1:80
Listen 192.168.0.5:80

上記のオプションは次のように表示されます。

:::80
0.0.0.0:80
127.0.0.1:80
192.168.0.5:80

そしてに翻訳する:-

  • 任意のIPアドレス(IPv4またはIPv6)でリッスンします
  • そのサーバー上の任意のIPv4アドレスでリッスンします
  • IPv4 localhostのみでリッスンします
  • 外部IPv4アドレス192.68.0.5でリッスンします

localhost外部の人にアクセスさせたくない場合は、インターフェイスのみでリッスンするようにサービスを設定できます。たとえば、LAMPサーバーを実行している場合はapache、すべてのIPアドレスでリッスンし(ユーザーがアクセスできるように)、mysqlデータベースはlocalhostbind=127.0.0.1ディレクティブを使用して)からのみアクセスできるように構成できます。この方法でphp同じサーバーで実行すると、データベースにアクセスできますが、外部(および信頼できない)ユーザーはデータベースにアクセスできません。


:::80いつもうまくとしてはIPv4を意味するものではありませんunix.stackexchange.com/a/496150/333382
RFC2460

11

127.0.0.1および0.0.0.0

127.0.0.1ローカルインターフェイスまたはループバックアドレスを意味します。ローカルホストからのみアクセス可能。

0.0.0.0 すべてのインターフェイスのワイルドカードアドレスです。

netstat -ntlp Local Address「オン」は、「アクティブなリッスンtcp接続を印刷し、IPを数値として表示し、この接続を使用するプログラムのPIDと名前を表示する」ことを意味します。


例による違い

例えば私が持っている場合

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name                 
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1189/prog1
tcp        0      0 0.0.0.0:6666            0.0.0.0:*               LISTEN      1188/prog2

つまり:

prog1PID のサービスは、プロトコルを使用1189してポート53でリッスンしますtcp。ローカルホストからのみアクセスできます。

prog2PID のサービスは、プロトコルを使用1189してポート6666でリッスンしますtcp。このポートへのアクセスは、コンピューターが属するすべてのネットワーク上の他のコンピューターから許可されます。

出典:1 2 3


3

0.0.0.0 プロセスがすべてのインターフェースにバインドされていることを意味します。

127.0.0.1プロセスが127.0.0.1インターフェイスにのみバインドされることを意味します(ループバック)。

他のインターフェイスがある場合x.y.z.a、プロセスがそれらの特定のインターフェイスにバインドされていることを示すエントリがある場合があります。

プロセスは、トラフィックがバインドされているインターフェースに到着した場合にのみ通知されるため、通常、これらの用語では説明されていませんが、一種のフィルターです。


2

「ローカルアドレス」は、問題のソケットがバインドされているアドレスです。これは、接続を受信するアドレスです。あなたが尋ねているアドレスは「特別なアドレス」です。Linux IPv4プロトコルのマニュアルページによると:

いくつかの特別なアドレスがありますINADDR_LOOPBACK127.0.0.1)は常にループバックデバイスを介してローカルホストを指します。INADDR_ANY0.0.0.0)は、バインディング用のアドレスを意味します。INADDR_BROADCAST255.255.255.255)は任意のホストを意味しINADDR_ANY、歴史的な理由でバインドと同じ効果があり ます。

これがアドレスに対して意味する0.0.0.0ことは、ソケットがシステム上の任意のアドレスの接続を任意のインターフェースで受信できることです。


1

先ほど言ったように、localhostのIPはそれらのポートへの接続のみをローカルで受け入れますが、IP 0.0.0.0はすべてに対して開かれているポートを指します。

例えば

地元

127.0.0.1:8307 VMWARE
127.0.0.1:25   MASTER

すべてに

0.0.0.0:80    HTTP
0.0.0.0:443   SKYPE
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.