我知道可以通过执行ifconfig lo down. 但是是否有可能将 lo 接口配置为根本不可用的内核?请注意,我不想删除内核源代码或禁用整个 tcp/ip 堆栈。
请注意,这完全是一个技术问题。我知道一个人需要接口,我的机器会发生很多不好的事情。但我仍然想知道这是否可能。
是的,这是可能的,如果:
只是从配置中删除它似乎没有预期那么简单。从/usr/src/linux/drivers/net/Makefile(3.2.29 内核中的第 68 行)中删除它是一个好的开始,但对于成功编译来说还不够。并且/usr/src/linux/net/core/dev.c(第 6606 行到 6614 行)表明如果选择了网络部分,环回设备应该始终存在。(如代码中的此注释所示):
/* 如果有其他网络设备,环回设备是特殊的 * 存在于环回设备必须的网络命名空间中 * 出席。由于我们现在动态分配和释放 * 环回设备确保这个不变量由 * 保持环回设备作为第一个设备 * 网络设备列表。确保环回设备 * 是出现的第一个设备和最后一个网络设备 * 消失了。 */
所以:是的,这是可能的。但并非完全微不足道。
作者当然这是可能的。Linux 是开源的;通过在构建系统和/或源代码中进行足够的黑客攻击,您可以做任何事情。你完全可以在没有 TCP/IP 堆栈的情况下编译 Linux;在这种情况下,您将无法拥有任何网络接口,因为内核将没有“网络”的概念。
这通常不是您可以从 GUI 或标准 Linux 发行版(例如 Ubuntu、Debian 或 Fedora)上的命令行禁用的,因为回送接口是硬连接到它们提供的特定内核构建中的;但这并不意味着您不能在删除内核的情况下重新编译内核。
此外,如果您没有任何特别需要这样做,并且“只是想知道”,我建议您不要问这种问题——原因是,我们尽量不鼓励琐碎或“只是为了好玩”关于 SU 的问题。如果您有真正的问题,请仅提出问题。