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

Elixir/Phoenix:生产环境服务器启动报:eafnosupport错误

解决Phoenix生产模式启动时的:eafnosupport错误

没错,你遇到的这个错误确实和IPv6(:inet6)配置直接相关。:eafnosupport的含义是"地址族不被协议族支持",说明你的生产环境服务器不支持IPv6,但Ranch(Phoenix底层的监听库)尝试以IPv6模式启动监听,导致失败。

你之前尝试的http: [:inet, port: 4000]无效,是因为配置格式不对——Phoenix的HTTP配置需要是关键字列表,而不是把:inet作为列表的第一项。正确的配置方式有两种:

方法1:强制指定使用IPv4地址族

在prod.exs里修改Endpoint的http配置,添加:family选项明确指定用IPv4:

config :hermes, HermesWeb.Endpoint,
  http: [port: 4000, family: :inet],
  url: [scheme: "https", host: "myhost", path: "/hermes/4000", port: 443],
  cache_static_manifest: "priv/static/cache_manifest.json"

方法2:绑定到具体的IPv4地址

如果你的服务器需要绑定到特定IPv4(比如0.0.0.0,允许所有IPv4访问),可以直接指定:ip参数:

config :hermes, HermesWeb.Endpoint,
  http: [port: 4000, ip: {0, 0, 0, 0}],
  url: [scheme: "https", host: "myhost", path: "/hermes/4000", port: 443],
  cache_static_manifest: "priv/static/cache_manifest.json"

额外检查点

如果你使用的是Phoenix 1.6及以上版本,还要确认runtime.exs里有没有覆盖HTTP配置——有时候运行时配置会覆盖prod.exs的设置,确保那里的http配置也包含上述的:family或:ip参数。

修改完成后,记得重新编译生产环境代码:

MIX_ENV=prod mix compile

然后再启动服务ENV=prod mix phx.server,应该就能正常启动了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 21:18:13