如何找到连接到我的 Linux PC 的设备的 IPv6 地址?

如何找到连接到我的 Linux PC 的设备的 IPv6 地址?

我可以通过以下方式查看连接到我的 Linux PC 的所有设备:

cat /proc/net/arp

但这只显示连接设备的 IPv4 地址和 MAC。没有 IPv6 地址。

如何找到连接设备的 IPv6 地址?

答案1

这是因为 IPv6不是使用地址解析协议(ARP)它使用邻居发现协议(NDP)。

使用该命令ip neighbor将列出 ARP 缓存和发现的 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 的设备。它显示子网上您的 PC 已对其发出/看到 ARP 请求的设备列表。如果您想查看哪些设备连接到您的 PC,则需要netstat或类似(它将自动显示 ipv4 和 ipv6 设备)。ipv6 不使用 ARP(它使用 NDP)

我希望这有帮助

相关内容