значение столбца локального адреса Netstat

20

Когда я делаю, netstat -ntlpесть столбец с именем Local Address:

  • иногда он будет выводить IP-адрес как 0.0.0.0:7180
  • и иногда 127.0.0.1:9001

Какое значение имеют оба обозначения?

Действует ли конкретный IP-адрес как фильтр для входящих соединений? Например, 127.0.0.1:9001он будет принимать соединения только с локального хоста через порт 9001?

user1678312
источник

Ответы:

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
  • Прослушивание внешнего IPv4-адреса 192.68.0.5

Вы можете настроить свой сервис на прослушивание только localhostинтерфейса, если вы не хотите, чтобы кто-то внешний обращался к нему. Например, если вы используете сервер LAMP, вы будете apacheпрослушивать все IP-адреса (чтобы ваши пользователи могли к нему обращаться), в то время как mysqlбазу данных можно настроить так, чтобы она была доступна только с localhost(используя ее bind=127.0.0.1директиву). Таким образом, phpработа на том же сервере будет иметь доступ к базе данных, в то время как внешние (и ненадежные) пользователи не смогут получить к ней доступ.

garethTheRed
источник
:::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

это значит:

Служба prog1с PID 1189прослушивает порт 53с протоколом tcp. Он доступен только с вашего локального хоста.

Служба prog2с PID 1189прослушивает порт 6666с протоколом tcp. Доступ к этому порту разрешен с любого другого компьютера во всех сетях, частью которых он является.

Источники: 1 2 3

Polym
источник
3

0.0.0.0 означает, что процесс связан со всеми интерфейсами.

127.0.0.1означает, что процесс связан только с 127.0.0.1интерфейсом (loopback).

Если у вас были другие интерфейсы, у вас могли бы быть x.y.z.aзаписи, указывающие, что процесс был связан с этими конкретными интерфейсами.

Процесс будет сообщен только в том случае, если трафик поступит на интерфейсы, к которым он привязан, так что да, это своего рода фильтр, хотя обычно он не описывается в этих терминах.

EightBitTony
источник
2

«Локальный адрес» - это адрес, к которому привязан данный сокет. Это адрес, по которому он получает соединения. Адреса, о которых вы спрашиваете, являются «специальными адресами». Согласно странице руководства для протокола Linux IPv4 :

Существует несколько специальных адресов: INADDR_LOOPBACK( 127.0.0.1) всегда ссылается на локальный хост через устройство обратной связи; INADDR_ANY ( 0.0.0.0) означает любой адрес для привязки; INADDR_BROADCAST ( 255.255.255.255) означает любой хост и оказывает такое же влияние на связывание, как и INADDR_ANYпо историческим причинам.

Для адреса это означает, 0.0.0.0что сокет может принимать соединения для любого адреса в системе, на любом интерфейсе.

Дэн Гетц
источник
1

Как вы уже сказали, IP-адрес localhost локально принимает подключения к этим портам, а 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
tachomi
источник