Linux 上的 ARP 缓存在哪里?

ssh*_*rma 14 linux arp

ARP 缓存在内存中的哪个位置存在?我尝试在网上搜索它,但没有找到任何东西。

小智 18

GNU/Linux 与 MacOSx 不同,它使用/proc目录结构(又名procfs)来存储系统数据。在arp cache位于/proc/net/arp 您的数据打印到stdout来自通过该系统文件中直接:

cat /proc/net/arp
Run Code Online (Sandbox Code Playgroud)

我意识到您可能还需要内核用来查找 arp 缓存的内存地址。确切的地址可能会有所不同。但是,您可以找到内核使用的所有 arp 内存地址的内存地址表/proc/kallsyms

cat /proc/kallsyms |grep arp_
Run Code Online (Sandbox Code Playgroud)

也可能有帮助。

  • 这是“GNU/Linux”错误的地方。您指的是内核,内核仅称为“Linux”。 (5认同)
  • `/proc` 目录不*存储*任何东西。它*显示*内核存储或计算的东西,有时允许修改这些东西,但它不对应任何存储区域。在ARP缓存的情况下,你可以通过`/proc/net/arp`查看它的文本渲染,但是你看到的是一些经过漂亮打印的内核数据结构,你并没有直接看到一些构成缓存内容的文件。 (4认同)