我花了几个小时才最终发现这是 docker 干的。启动使用主机网络 (--network=host) 的 docker 容器,系统配置了 IPv6 地址,dockerd 以 --ipv6 运行,会禁用系统上的所有 IPv6。它将 /proc/sys/net/ipv6/conf 下所有接口上的 disable_ipv6 标志设置为 1。不知道为什么会这样。我猜这是一个错误。
运行 Ubuntu 16.04
docker-engine=17.04.0~ce-0~ubuntu-xenial
答案1
只是为了分享更多细节,即使没有,我也遇到了同样的问题--network=host
,我在容器之间使用 netns ifaces。通过启动容器来“修复它”--sysctl net.ipv6.conf.all.disable_ipv6=0
答案2
这显然是由于https://github.com/moby/moby/issues/32433应在 2017 年 5 月发布的 17.05.0-ce 版本中修复。