XXL-JOB 关于ip地址

/ 后端 / 没有评论 / 87浏览

问题

部署到阿里云ecs的调度任务,防火墙安全组开放了内网的权限,不想使用公网调用;但是部署后发现,调度管理器执行任务是调用的是公网ip;

发现原因

调度执行器,如果没有设置相关ip和端口号,则框架会使用工具获取ip和使用随机未使用端口号,如下代码:

        // fill ip port
        port = port>0?port: NetUtil.findAvailablePort(9999);
        ip = (ip!=null&&ip.trim().length()>0)?ip: IpUtil.getIp();

IpUtil.getIp()方法获取到的是ecs的公网ip;

解决

(1)开通阿里云获取网络地址的服务,获取内网地址; (2)ecs的启动jar执行文件中,指定所在机器内网ip;