znaczenie kolumny lokalnego adresu Netstat

20

Kiedy to robię, netstat -ntlppojawia się kolumna o nazwie Local Address:

  • czasami wyświetlałby adres IP jako 0.0.0.0:7180
  • i czasami 127.0.0.1:9001

Jakie są konsekwencje obu notacji?

Czy określony adres IP działa jak filtr połączeń przychodzących? Np 127.0.0.1:9001. Czy akceptuje połączenia z hosta lokalnego na porcie 9001?

użytkownik1678312
źródło

Odpowiedzi:

13

Myślę, że odpowiedziałeś na własne pytanie.

Na przykład apachema Listenopcję, która mówi, który adres i port mają nasłuchiwać. W zależności od tego, jak to jest ustawione, apachenasłuchuje na dowolnym adresie IP, konkretny adres: -

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

Powyższe opcje są wyświetlane jako: -

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

i przetłumacz na: -

  • Słuchaj na dowolnym adresie IP (IPv4 lub IPv6)
  • Nasłuchuj na dowolnym adresie IPv4 na tym serwerze
  • Słuchaj tylko na lokalnym hoście IPv4
  • Nasłuchuj na zewnętrznym adresie IPv4 192.68.0.5

Możesz skonfigurować swoją usługę, aby nasłuchiwała tylko localhostinterfejsu, jeśli nie chcesz, aby ktokolwiek z zewnątrz miał do niego dostęp. Na przykład, jeśli korzystasz z serwera LAMP, będziesz apachenasłuchiwał na wszystkich adresach IP (aby użytkownicy mogli uzyskać do niego dostęp), podczas gdy mysqlbazę danych można skonfigurować tak, aby była dostępna tylko z localhost(używając jej bind=127.0.0.1dyrektywy). W ten sposób phpdziałające na tym samym serwerze będą mogły uzyskać dostęp do bazy danych, podczas gdy użytkownicy zewnętrzni (i niezaufani) nie będą mogli uzyskać do niej dostępu.

garethTheRed
źródło
:::80nie zawsze oznacza również IPv4. unix.stackexchange.com/a/496150/333382
rfc2460
11

127.0.0.1 i 0.0.0.0

127.0.0.1oznacza lokalny interfejs lub adres pętli zwrotnej. Dostępne tylko z lokalnego hosta.

0.0.0.0 to adres wieloznaczny dla każdego interfejsu.

On netstat -ntlp Local Addressoznacza „Wydrukuj aktywne nasłuchiwanie połączeń TCP, pokaż adresy IP jako wartości liczbowe i pokaż PID oraz nazwę programu, który korzysta z tego połączenia”.


Różnica według przykładów

Np. Jeśli mam

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

to znaczy:

Usługa prog1z PID 1189nasłuchuje na porcie 53z protokołem tcp. Jest dostępny tylko z lokalnego hosta.

Usługa prog2z PID 1189nasłuchuje na porcie 6666z protokołem tcp. Dostęp do tego portu jest dozwolony z dowolnego innego komputera we wszystkich sieciach, w których komputer jest częścią.

Źródła: 1 2 3

polim
źródło
3

0.0.0.0 oznacza, że ​​proces jest powiązany ze wszystkimi interfejsami.

127.0.0.1oznacza, że ​​proces jest powiązany tylko z 127.0.0.1interfejsem (sprzężenie zwrotne).

Jeśli masz inne interfejsy, możesz mieć x.y.z.awpisy wskazujące, że proces był powiązany z tymi konkretnymi interfejsami.

Proces zostanie poinformowany tylko wtedy, gdy ruch dotrze do interfejsów, z którymi jest związany, więc tak, to rodzaj filtru, chociaż zwykle nie jest opisany w tych terminach.

EightBitTony
źródło
2

„Adres lokalny” to adres, z którym powiązane jest dane gniazdo. To jest adres, na który odbiera połączenia. Adresy, o które pytasz, to „adresy specjalne”. Zgodnie ze stroną podręcznika dla protokołu Linux IPv4 :

Istnieje kilka specjalnych adresów: INADDR_LOOPBACK( 127.0.0.1) zawsze odnosi się do lokalnego hosta za pośrednictwem urządzenia zwrotnego; INADDR_ANY ( 0.0.0.0) oznacza dowolny adres do wiązania; INADDR_BROADCAST ( 255.255.255.255) oznacza dowolnego hosta i ma taki sam wpływ na powiązanie, jak INADDR_ANYz przyczyn historycznych.

Dla adresu 0.0.0.0oznacza to, że gniazdo może odbierać połączenia dla dowolnego adresu w systemie i na dowolnym interfejsie.

Dan Getz
źródło
1

Jak już powiedziałeś, adres IP hosta lokalnego akceptuje połączenia tylko z tymi portami lokalnie, natomiast adres IP 0.0.0.0 odnosi się do portów, które są otwarte dla wszystkich.

Na przykład

Lokalny

127.0.0.1:8307 VMWARE
127.0.0.1:25   MASTER

Do wszystkich

0.0.0.0:80    HTTP
0.0.0.0:443   SKYPE
tachomi
źródło