我可以通过以下方式查看所有连接到我的 Linux PC 的设备:
cat /proc/net/arp
但这仅显示所连接设备的 IPv4 地址和 MAC。没有 IPv6 地址。
如何找到连接设备的 IPv6 地址?
答案1
如果您想查看与您的机器建立连接的所有设备,您可以使用
ss -t
查看所有 IPv4 和 IPV6 tcp 连接。
如果您想要 IPv6 等效项cat /proc/net/arp
(即查看本地网络上已缓存第 2 层地址的所有计算机),请使用
ip -6 neigh
或者简单地
ip neigh
对于组合的 IPv4 和 IPv6 相邻节点。
答案2
最简单的命令是列出所有连接ss | less
,但要仅查看 tcp、udp 或 unix 连接,请-t
使用
ss -t
这应该会显示所有 IPv4 和 IPV6 tcp 连接。
要仅显示 IPv4 套接字连接,请使用
-f inet
或-4
选项。ss -tl -f inet 或
SS-TL-4
要仅显示 IPv6 连接,请使用
-f inet6
或-6
选项。ss -tl6 或
SS-finet6
或者只是供 IPv4 和 IPv6 相邻节点组合使用
ip neighbour
这将显示内核中当前的邻居表。
但笔记正如您在评论中看到的:/proc/net/arp
没有列出连接到您的电脑的设备。它显示您的子网上的设备列表,您的 PC 已针对这些设备完成/看到了 ARP 请求。如果您想查看哪些设备连接到您的电脑,那么您需要netstat
或类似的(它将自动显示 IPV4 和 IPV6 设备)。 IPV6 不使用 ARP(它使用 NDP)