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

NodeRed配置MikroTik防火墙失败,参数及JSON格式是否正确?

NodeRed配置MikroTik防火墙写入问题排查

一、修正输入JSON的明显错误

你的输入JSON里,username、password、host的值末尾带有换行符(代码里的***** 格式可看出),这会导致认证时账号密码不匹配,直接引发写入失败。先删除换行符,修正后的代码如下:

const message = {
    "username": "*****",
    "password": "*****",
    "host": "****",
    "payload": {
        "command": [
            "ip/firewall/mangle/add",
            "=action=mark-packet",
            "=chain=postrouting",
            "=dst-address=****",
            "=new-packet-mark=dw-112233"
        ]
    }
};

return message;

二、排查权限与节点配置冲突

  1. MikroTik用户权限校验:确认使用的账号拥有防火墙配置的写入权限,可登录MikroTik后台,在/user group中检查该用户所属组的权限,确保勾选firewall相关的写入权限项。
  2. NodeRed节点配置去重:如果已经在NodeRed的MikroTik节点设置中填写了主机、账号、密码,输入消息里重复传递这些参数会导致冲突。建议固定信息只在节点配置中填写,输入消息仅传递命令内容,简化写法:
return {
    payload: {
        command: [
            "ip/firewall/mangle/add",
            "=action=mark-packet",
            "=chain=postrouting",
            "=dst-address=****",
            "=new-packet-mark=dw-112233"
        ]
    }
};

三、命令格式的替代写法验证

MikroTik API支持两种命令格式,你使用的数组格式是合规的,也可以尝试对象格式(部分NodeRed MikroTik扩展兼容):

return {
    payload: {
        command: "ip/firewall/mangle/add",
        action: "mark-packet",
        chain: "postrouting",
        "dst-address": "****",
        "new-packet-mark": "dw-112233"
    }
};

四、截图信息辅助排查

  • 第一张截图:显示NodeRed流程包含注入节点、函数节点、MikroTik节点及调试节点,MikroTik节点配置界面已填写主机、端口、用户名等信息,需注意是否与消息内参数重复。
  • 第二张截图:调试面板仅展示消息结构,未显示错误详情,建议查看NodeRed右上角菜单→日志,获取MikroTik节点返回的具体错误(如认证失败、权限不足等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:10:01