列出多播套接字

14

我想要列出Linux系统上所有已打开的组播套接字,但仅使用netstat -g只能列出已加入的组。是否有其他工具可用于此目的?

非常感谢您的帮助。

2个回答

13

除了 netstat -g 外,您还可以使用此命令查看绑定到多播地址的所有套接字:

除了 netstat -g,您还可以使用此命令查看绑定到多播地址的所有套接字:

netstat -anu|sort -nk4

这是所有UDP套接字(无论是否组播)的列表。查找范围在224.0.0.0到239.255.255.255之间的所有地址。这些套接字绑定到多播地址,无论它们是否加入了多播组。它们将接收此多播组的流量。

但是:

实际上,用于接收多播流量的UDP套接字通常绑定到地址0.0.0.0。这些套接字可以接收所有单播和多播地址的UDP数据包,服务器通常根据源IP地址进行一些额外的过滤。

因此,在上面的列表中,您可能还需要查看绑定到0.0.0.0的UDP套接字,例如0.0.0.0:5353,这很可能是mDNS(avahi、zeroconf)服务器。


5

我认为没有工具可以提供您那样的信息。

原因是多播套接字并未绑定到地址,仅参与多播组(IP_ADD_MEMBERSHIP)。一个套接字可以在同一接口上加入多个不同的组,或者在不同接口上加入相同的组,因此保持这些交叉引用意义不大。内核暴露的唯一信息位于 /proc/net 中,在这种情况下是 /proc/net/igmp (<- netstat -g)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接