You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows纯IPv6环境下运行Erlang报错的问题求助

仅IPv6环境下Erlang启动失败问题求助

问题背景

在仅支持IPv6的Windows 2019虚拟机上运行Erlang(为部署RabbitMQ做准备)时,启动erl.exe出现错误,核心问题指向Erlang内部对IPv4的硬编码依赖。

操作步骤

  • 安装支持IPv4+IPv6的Windows 2019虚拟机
  • 安装Erlang 27.1版本
  • 执行命令移除IPv4栈:netsh Ipv4 interface uninstall
  • 运行erl.exe后触发错误

错误信息

=ERROR MSG==== 18446744072343088544 ===
Failed create 'dummy' socket:
eafnosupport (10047)
=ERROR MSG==== 18446744072343091104 ===
Failed initiating I/O backendErlang/OTP 26 [erts-14.2.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit:ns]

Eshell V14.2.3 (press Ctrl+G to abort, type help(). for help)

已尝试的解决动作

  • 在.inetrc中添加IPv6相关配置:
    {inet6, true}.
    {tcp, inet6_tcp}.
    %% {inet_default_bind_address, {0,0,0,0,0,0,0,0}}.
    %% {inet_default_connect_options, [inet6]}.
    
    前两行可正常解析,但错误未消除;后两行配置解析失败。
  • 使用IPv6分布式协议启动:erl.exe -proto_dist inet6_tcp,问题依旧存在。

源码定位

查阅Erlang源码后确认,错误来自esaio_init函数中的以下代码:

ctrl.dummy = sock_open(AF_INET, SOCK_STREAM, IPPROTO_TCP);

该行硬编码使用AF_INET(IPv4地址族)创建dummy socket,在无IPv4栈的环境下直接触发eafnosupport(地址族不支持)错误。

请求解决建议

需要找到绕过或修复该IPv4依赖的方法,确保Erlang能在纯IPv6环境下正常启动,从而继续部署RabbitMQ。

内容的提问来源于stack exchange,提问作者tamir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 23:09:52