Linux:从内核禁用环回接口


4

我知道这样做可以降低lo接口ifconfig lo down。但是是否可以将内核配置为lo接口根本不可用?请注意,我不想删除内核源代码或禁用整个tcp / ip堆栈。

请注意,这完全是一个技术性问题。我知道有人需要该接口,并且我的机器会发生很多坏事。但是我仍然想知道是否有可能。


4
健全性检查:您知道这样做会导致事情破裂吗?
Hennes 2012年

4
您需要一个环回网络接口。它处理本地计算机上的服务。您为什么要删除此功能?
fpmurphy

我知道我不应该这样做。只是想知道是否有可能。
lang2 2012年

Answers:


4

是的,有可能的话:

  • 您在没有网络支持的情况下重新编译Linux。(一个都没有)
  • 您编辑内核源代码。

只是从配置中删除它看起来并不那么容易。从/usr/src/linux/drivers/net/Makefile(在3.2.29内核中的第68行)删除它是一个好的开始,但是不足以成功编译。和/usr/src/linux/net/core/dev.c(线6606至6614)指示该回环设备有望总是如果选择了网络部分存在。(如代码中此注释所示):

/ *如果有其他网络设备,则回送设备是特殊的
 *存在于网络名称空间中,回送设备必须
 * 出席。由于我们现在可以动态分配和释放
 *环回设备确保通过
 *将环回设备保持为第一个设备
 *网络设备列表。确保环回设备
 *是出现的第一个设备,也是最后一个网络设备
 *消失。
* /

所以:是的,有可能。但并非完全无关紧要。


4

作者当然这是可能的。Linux是开源的。在构建系统和/或源代码中有足够的黑客攻击,您可以执行任何操作。您绝对可以完全不使用TCP / IP堆栈来编译Linux。在这种情况下,您将无法使用任何网络接口,因为内核没有“网络”的概念。

通常,您不能从GUI或标准Linux发行版(如Ubuntu,Debian或Fedora)上的命令行中禁用此功能,因为回送接口硬连接到它们附带的特定内核版本中。但这并不意味着您不能在删除内核的情况下重新编译它。

另外,如果您不需要这样做,并且只是“想知道”,我建议您不要问这样的问题-原因是,我们会尽量避免琐碎或“只是为了娱乐”关于SU的问题。如果您有真正的问题,请只问一个问题。


1
谢谢。这不是为了好玩。因此,要删除lo,必须将其从代码中删除或完全禁用tcp / ip堆栈?
lang2 2012年

3
您可以将其从/usr/src/linux/drivers/net/loopback.c中删除
Hennes 2012年

1
许多程序包都在背后使用TCP / IP网络,甚至可以在没有任何外部联系的情况下在同一台计算机上进行通信。什么都行不通,
vonbrand
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.