significado da coluna de endereço local do Netstat

18

Quando eu faço netstat -ntlp , há uma coluna chamada Local Address :

  • às vezes, ele enviaria um endereço IP como 0.0.0.0:7180
  • e às vezes 127.0.0.1:9001

Quais são as implicações de ambas as notações?

O endereço IP específico age como um filtro para conexões de entrada? Por exemplo. para 127.0.0.1:9001 só aceitará conexões de localhost na porta 9001?

    
por user1678312 30.06.2014 / 15:06

5 respostas

12

Acho que você respondeu sua própria pergunta.

Como exemplo, apache tem a opção Listen que informa qual endereço e porta devem ser ouvidos. Dependendo de como isso é definido, apache escutará em qualquer endereço IP, um endereço específico: -

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

As opções acima aparecem como: -

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

e traduza para: -

  • Ouça em qualquer endereço IP (IPv4 ou IPv6)
  • Ouça em qualquer endereço IPv4 nesse servidor
  • Escutar apenas localhost IPv4
  • Ouça no endereço IPv4 externo 192.68.0.5

Você poderia configurar seu serviço para ouvir apenas a interface localhost se não quiser que ninguém externo a acesse. Por exemplo, se você estiver executando um servidor LAMP, terá apache de escuta em todos os endereços IP (para que seus usuários possam acessá-lo) enquanto um banco de dados mysql pode ser configurado para ser acessível somente a partir de localhost ( usando a diretiva bind=127.0.0.1 ). Dessa forma, php em execução no mesmo servidor poderá acessar o banco de dados enquanto usuários externos (e não confiáveis) não poderão acessá-lo.

    
por 30.06.2014 / 15:49
8

127.0.0.1 e 0.0.0.0

127.0.0.1 significa interface local ou endereço de loopback. Acessível somente a partir do seu host local.

0.0.0.0 é um endereço curinga para todas as interfaces.

Em netstat -ntlp Local Address significa "Imprima conexões tcp de escuta ativa, mostre IPs como valores numéricos e mostre o PID e o nome do programa que usa esta conexão."

Diferença por exemplo

Por exemplo se eu tiver

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

isso significa:

O serviço prog1 com PID 1189 escuta na porta 53 com o protocolo tcp . Só é acessível a partir do seu host local.

O serviço prog2 com PID 1189 escuta na porta 6666 com o protocolo tcp . O acesso a essa porta é permitido em qualquer outro computador em todas as redes das quais o computador faz parte.

Fontes: 1 2 3

    
por 30.06.2014 / 15:49
3

0.0.0.0 significa que o processo está vinculado a todas as interfaces.

127.0.0.1 significa que o processo está ligado apenas à interface 127.0.0.1 (loopback).

Se você tivesse outras interfaces, você poderia ter x.y.z.a entradas indicando que o processo estava vinculado a essas interfaces específicas.

Um processo só será informado se o tráfego chegar às interfaces às quais ele está vinculado, então, sim, é um tipo de filtro, embora não seja normalmente descrito nesses termos.

    
por 30.06.2014 / 15:49
2

O "endereço local" é o endereço ao qual o soquete em questão está vinculado. Este é o endereço no qual recebe conexões. Os endereços que você está perguntando são "endereços especiais". De acordo com a página de manual do protocolo IPv4 do Linux :

There are several special addresses: INADDR_LOOPBACK (127.0.0.1) always refers to the local host via the loopback device; INADDR_ANY (0.0.0.0) means any address for binding; INADDR_BROADCAST (255.255.255.255) means any host and has the same effect on bind as INADDR_ANY for historical reasons.

O que isso significa para o endereço 0.0.0.0 é que o soquete pode receber conexões para qualquer endereço no sistema, em qualquer interface.

    
por 30.06.2014 / 15:48
1

Como você disse, o IP do host local só aceita conexões para essas portas localmente, enquanto o IP 0.0.0.0 se refere às portas que estão abertas para todos.

Por exemplo

Local

127.0.0.1:8307 VMWARE
127.0.0.1:25   MASTER

Para todos

0.0.0.0:80    HTTP
0.0.0.0:443   SKYPE
    
por 30.06.2014 / 15:47

Tags