运行Python版Mineflayer Minecraft机器人时如何修复ENOTFOUND错误?
解决Mineflayer机器人连接时的getaddrinfo ENOTFOUND错误
错误原因
从报错信息可以看到,DNS解析的主机名是tima.aternos.me:44286——端口号被错误拼接到主机名参数里了,DNS服务器无法识别带端口的主机名,因此抛出ENOTFOUND解析失败错误。
解决步骤
- 拆分主机与端口参数:
host字段仅填写纯域名(比如tima.aternos.me),不要附加端口;port字段单独填写数字类型的端口号(不要用字符串引号包裹)。 - 修正事件执行逻辑:将聊天操作放到
login事件的回调中,避免机器人未完成登录流程就调用API导致的异常。
修正后的代码示例
from javascript import require, once mineflayer = require("mineflayer") random_number = id([]) % 1000 BOT_USERNAME = f'colab_{random_number}' bot = mineflayer.createBot({ 'host': 'tima.aternos.me', # 仅填写纯域名,不含端口 'port': 44286, # 端口使用数字类型,无需引号 'username': BOT_USERNAME, 'hideErrors': False }) # 登录成功后触发聊天动作 once(bot, 'login', lambda: bot.chat('I spawned'))
额外检查项
- 确认服务器权限:部分Minecraft服务器(如Aternos)可能需要开启“允许第三方客户端”类的设置,才能让机器人连接。
- 测试网络连通性:通过
ping tima.aternos.me和telnet tima.aternos.me 44286验证主机和端口是否可达。
内容的提问来源于stack exchange,提问作者TrueTruffle
相关产品推荐
相关产品推荐

