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

无法连接节点至Erlang调试器ErlyBerly的问题咨询

ErlyBerly连接Erlang节点失败问题排查

问题背景

我正在学习Erlang调试器ErlyBerly,通过以下命令启动ErlyBerly:

java -jar target/*runnable.jar

我编写了一个带有无限循环的简单Erlang应用以保持运行,通过erl命令行界面启动了节点(Erlang节点与ErlyBerly运行在同一Linux机器上)。节点已在ErlyBerly中列出,但尝试连接时出现错误 "cannot connect to peer node"。我尝试过长节点名node@oc.com,仍出现相同错误。

ErlyBerly的文档提到:"只需确保runtime_tools应用在代码路径中可用。如果直接使用erl运行节点,它会默认可用"。我对此不甚理解:什么是runtime_tools?如何直接用erl运行节点?

错误信息截图:
连接错误

问题解答

1. 什么是runtime_tools?

runtime_tools是Erlang官方提供的一套运行时工具集,包含调试、性能分析、节点监控类的核心模块(比如dbg调试框架、observer监控工具等)。ErlyBerly需要依赖这些工具实现与Erlang节点的调试连接,获取节点的运行状态、进程信息等数据。

2. 如何直接用erl运行节点?

"直接用erl运行节点"指的是直接通过系统命令行执行erl命令启动Erlang节点,而非通过构建工具(如rebar3的rebar3 shell)、自定义脚本或第三方框架启动。

直接启动节点的示例命令:

# 启动短节点名的本地节点(默认绑定localhost)
erl -sname mydebugnode

# 启动长节点名的节点(需确保主机名可解析,或直接指定IP)
erl -name mydebugnode@127.0.0.1

这种原生方式启动的节点,runtime_tools会被自动加入代码路径,无需额外配置。

3. 连接失败的额外排查点

除了确认runtime_tools可用,还需检查以下关键配置:

  • 节点Cookie一致:Erlang节点间建立连接必须使用相同的Cookie。你可以在启动Erlang节点时指定Cookie:
    erl -sname mydebugnode -setcookie erlyberlysecret
    
    同时在ErlyBerly的节点连接配置中填入相同的Cookie值。
  • 节点名解析正常:如果使用长节点名node@oc.com,需确保oc.com能被本地机器解析(可修改/etc/hosts添加127.0.0.1 oc.com),或者直接使用IP作为节点名的主机部分(如node@127.0.0.1)。
  • 端口与防火墙:同一机器下通常无需担心端口问题,但可确认Erlang节点的默认端口(4369及随机分配的通信端口)未被本地防火墙拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 22:40:24