在 /sys/class/net
中检查接口
在这一步中,你将探索 /sys
文件系统,以查找有关网络接口的信息,包括混杂模式(promiscuous mode)状态。/sys
文件系统是 Linux 中的一个虚拟文件系统,它提供了一种与内核和设备驱动程序进行交互的方式,会展示硬件设备及其配置的相关信息。
导航到 /sys
中的网络接口目录。使用 cd
命令更改当前目录:
cd /sys/class/net/
现在,使用 ls
命令列出该目录的内容:
ls
你将看到一个网络接口列表,类似于 ip link show
的输出。你应该会看到 eth0
和 lo
。
eth0 lo
这里的每个目录都对应一个网络接口。让我们查看 eth0
目录的内容:
cd eth0
现在,列出 eth0
目录中的文件:
ls
你会看到许多包含 eth0
接口信息的文件和目录。我们关注的是指示混杂模式状态的文件。这些信息通常可以在与设备标志或状态相关的文件中找到。
虽然确切的文件名可能会因内核版本略有不同,但通常可以通过检查可能包含标志或状态信息的文件内容来找到这些信息。
让我们尝试读取一个可能指示状态或标志的文件内容。使用 cat
命令显示文件内容。例如,你可以查找名为 flags
或类似名称的文件。
cat flags
cat flags
命令的输出将是一个十六进制数字。这个数字代表各种接口标志的位掩码。要解释这个数字,你通常需要参考内核文档,了解特定标志及其对应的位值。不过,要专门检查混杂模式,在 /sys
中通常有更直接的方法。
在 /sys
中检查混杂模式更可靠的方法是查找一个明确指示混杂标志计数的文件。这个文件通常名为 flags
或类似名称,正确解读其内容就能知道混杂标志是否已设置。
如果你还没在 /sys/class/net/eth0
目录下,让我们回到该目录:
cd /sys/class/net/eth0
现在,让我们再次检查 flags
文件。flags
文件中的十六进制值代表各种接口状态。虽然直接解读十六进制值需要了解内核标志,但在步骤 1 中 ip link show
输出中 PROMISC
标志的存在是一种更方便用户确认混杂模式的方式。/sys
文件系统提供了像 ip
这样的工具所使用的原始内核数据。
要在 /sys
中直接检查,你通常会查找一个专门指示混杂计数或状态的文件。不过,在这个环境中,使用标准工具确认混杂模式最直接的方法是像步骤 1 中那样使用 ip link show
。/sys
文件系统提供了底层数据,但如果没有特定的内核文档,解读这些数据会更复杂。
这一步展示了 /sys
文件系统如何提供对设备信息的底层访问。虽然通过 /sys
中的单个文件直接检查混杂模式可能很复杂,但了解这个文件系统对于高级 Linux 系统分析很有价值。
点击 继续 完成此步骤。