我可以通过以下方式查看连接到我的 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)
我希望这有帮助