netstat и подобные команды предоставляют информацию о службах, привязанных к IP. Однако эта информация ограничена, когда служба привязывается ко «всем доступным интерфейсам»:

root@srv ~# netstat -tulpn | grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1077/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      1077/sshd

В приведенном выше случае демон SSH привязан ко всем доступным интерфейсам, но не указано, какие именно.

Как проверить все интерфейсы (или IP-адреса), к которым привязан сервис?

1
slm 3 Авг 2018 в 10:57

1 ответ

Попробуйте ss.

Что-то типа:

ss -o state established '( dport = :ssh or sport = :ssh )'

Возможно, это то, что вы ищете:

$ ss -o state established '( dport = :ssh or sport = :ssh )'
Netid Recv-Q Send-Q        Local Address:Port                         Peer Address:Port                
tcp   0      0               10.12.11.93:ssh                            10.22.96.0:57244                 timer:(keepalive,119min,0)


Страница руководства онлайн: https://linux.die.net/man/8/ss

4
maulinglawns 3 Авг 2018 в 10:18
Спасибо, но здесь перечислены установленные соединения, а не привязка (которая может не иметь соединения прямо сейчас)
 – 
WoJ
3 Авг 2018 в 14:36
Что касается binding, возможно, это ответ, который вы ищете: unix.stackexchange.com/a/16058/ 191550
 – 
maulinglawns
3 Авг 2018 в 14:43
Еще раз спасибо, но это маршрутизация - независимо от того, какая служба привязана к какому интерфейсу.
 – 
WoJ
3 Авг 2018 в 14:53