我怎样才能从Linux禁用IPv4堆栈? 我想dynamic地做,即。 有时我希望启用它,有时我只想要IPv6栈。 有没有可移植的方式来做到这一点? 如果你知道如何做到这一点,它也会帮助我很多。
在IRC上稍微聊一下之后,普遍的观点是,linux内核在ipv4和ipv6之间共享一些代码,这可能使得完全禁用ipv4是完全不可能的。 你可以尝试编译没有ipv4部分的内核,但是在这种情况下ipv6可能不能编译(但是没有任何东西阻止你尝试!)。
您可以从接口AFAIK中删除ipv4地址,但我认为现在完全禁用ipv4是不可能的。
编辑:在内核2.6.36上make menuconfig快速检查后,我无法find禁用ipv4,而不禁用整个TCP / IP协议栈(以及,ipv6)的方式。
大多数情况下,你应该重新编译你的内核没有ipv4模块。 Fedora的
你不能完全禁用它,因为系统使用127.0.0.1磅接口。 但是你可以用if-cfg命令禁用一些ipv4function。
如果这是开发人员,那么可以使用“库插入”,LD_PRELOAD一些带有存根函数的篡改库,它们只是返回错误(或者根据一周中的某一天或某些其他外部标准调用真正的函数)。