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

Mineflayer AFK Bot部署至Render后反复进出服务器求助

解决Mineflayer AFK Bot在Render平台反复退出重连的问题

针对你遇到的本地运行正常、Render部署后Bot不断退出重连的问题,从代码和平台配置两方面给出排查与修复方案:

1. 先添加错误监听,定位断开原因

你的代码未监听error和kicked事件,无法明确Bot是被服务器踢出、连接失败还是出现代码报错,这是排查核心。修改initBot函数:

function initBot() {
  let bot = mineflayer.createBot(botargs) // 声明局部变量,避免全局污染

  bot.once('spawn', () => {
    bot.chat("/tp @s 4 76 5")
  })

  bot.on('physicTick', lookAtNearestPlayer)
  
  // 保留原跳跃逻辑或后续替换,先加错误监听
  bot.on('physicTick', () => {
    bot.setControlState('jump', true)
  })

  // 新增错误与踢出日志
  bot.on('error', (err) => {
    console.error('Bot运行/连接错误:', err.message)
  })
  bot.on('kicked', (reason) => {
    console.log('Bot被服务器踢出:', reason)
  })

  bot.on('end', () => {
    console.log('Bot断开,5秒后尝试重连...')
    setTimeout(initBot, 5000)
  })
}

部署后查看Render日志,即可明确断开的具体原因。

2. 排查Render与Aternos的网络连通性

  • 确认Aternos服务器地址正确性:Aternos可能会更换服务器IP,检查MY SMP ADDRESS是否为最新的服务器地址。
  • 检查Render出站端口:Aternos使用的24383端口需要Render实例能正常访问,Render默认开放多数出站端口,可在实例设置中确认网络规则。
  • Aternos IP限制:部分Aternos服务器会限制陌生IP连接,尝试将Render实例的公网IP添加到Aternos白名单(若有该设置)。

3. 调整AFK行为,避免触发反作弊

原代码在physicTick中持续设置jump为true,这种机械重复的行为易被Aternos的反作弊机制检测到并踢出。改成间歇性跳跃:

// 替换原持续跳跃的逻辑
let jumpTickCounter = 0
bot.on('physicTick', () => {
  jumpTickCounter++
  // 每10秒(200个tick)跳一次,每次持续0.25秒(5个tick)
  bot.setControlState('jump', jumpTickCounter % 200 < 5)
})

4. 修复全局变量问题

原代码中bot未用let/const声明,属于全局变量,重连时可能引发逻辑冲突或内存泄漏,需在initBot内声明为局部变量(如第一步代码所示)。

5. 检查Render实例资源

若使用Render免费实例,可能因资源不足或自动休眠导致连接中断。可尝试升级到付费实例,或在Render设置中关闭实例自动休眠(若支持)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:42:50