https://web.archive.org/web/20160528234959/https://wiki.freebsd.org/IPv6Only讨论了仅支持 IPv6,不支持 IPv4 的 FreeBSD 映像。不过,该页面不再存在(因此我的存档链接),我找不到任何关于此的最新信息。我的问题:今天,在任何现代 UNIX 或 Linux 系统上,是否有可能只支持 IPv6 而不是 IPv4,就像那个旧的 FreeBSD 映像一样?如果执行此操作的方式需要自定义内核或类似的工作,那也没关系。
我见过的其他地方问过这个问题(都是在我最初问这个问题之后的日期):
只需构建 FreeBSD。
今天是可能的,因为 FreeBSD 继续提供所使用的机制。
它是一组用于关闭或排除 IPv4 的内核配置和 makefile 选项。基本的是
nooptions INET
,但请注意其他/usr/src/sys/conf/makeLINT.mk
功能。还要观察/usr/src/sys/conf/NOTES
关于未启用 IPv4 和 IPv6 的连锁反应的说法。进一步阅读
config
. FreeBSD 文件格式手册. 2016 年 2 月 21 日。是的当然。一种方法是根本不在主机上配置任何(公共)IPv4 地址或服务。更极端的是(如果操作系统支持)删除 IPv4 支持,但这更复杂,可能不可能,如果它可能会破坏(通常是旧的)服务。详细信息会因操作系统而异,因为它们在网络配置的确切方式上都非常不同。
例如在 macOS 上可能会运行
在 .上禁用 IPv4 并启用 IPv6
en0
。(lo0
可能仍然有 IPv4,但其他系统不需要知道这一点。)然而,这可能不是很有用,因为许多东西不支持或在 IPv6 上不可用,而且不像几年前有人可以像他们为切换到 TCP/IP 所做的那样呼吁一个标志日......
这在 Linux 上当然是可能的。内核中的网络协议是可配置的,您可以删除所有 IPv4 内容。但是,大多数发行版都希望使用 IPv4 并尝试使用它,因此您也必须自定义发行版的这一部分(如果只是为了摆脱错误消息)。
当然,问题是你这样做有什么好处。是的,如果没有 IPv4 协议,内核会更小一些。但是,只使用股票内核并配置所有内容以不接受 IPv4 地址或一开始就没有 IPv4 会简单得多。