Files
ros-dpi/docs/RouterOS配置.md
T
Su YijunandClaude Opus 5.5 f3e9fdb2af feat: ROS-DPI v0.1.0:RouterOS 终端流量与应用统计面板
- IPFIX / NetFlow v9 采集 + TZSP DNS 嗅探识别应用,可选 ROS 只读 REST 轮询
- 内置 100+ 应用规则库,支持自定义域名 / IP 段 / 端口规则
- 按分钟 / 小时 / 天汇总写入 MySQL
- 全网概览、主机监控、应用统计、流量流向(桑基图)、识别规则、系统设置
- 中英双语,深浅色主题,T568B 线色设计语言
- Docker 多架构镜像,GitHub Actions 测试与发布

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 23:51:02 +08:00

3.5 KiB
Raw Blame History

RouterOS 配置说明

下文以容器主机 IP 192.168.88.10、路由器 LAN 192.168.88.1 为例。命令适用于 RouterOS 7。

1. 流量采集(必需)

/ip traffic-flow set enabled=yes interfaces=all active-flow-timeout=1m inactive-flow-timeout=15s
/ip traffic-flow target add dst-address=192.168.88.10 port=2055 version=ipfix
  • interfaces=all:上行包在 LAN 口入方向采集,下行包在 WAN 口入方向采集,两者合起来才完整。ROS-DPI 会按 LAN 网段判断方向,并自动丢弃内网互访和路由器自身的流量,不会重复计数。
  • active-flow-timeout=1m:长连接每分钟上报一次,统计和速率才能接近实时。
  • 也可用 version=9(NetFlow v9),两者都支持。

FastTrack:被 FastTrack 的连接可能不经过 Traffic Flow,导致统计偏少。对比概览页的“WAN 实时速率”(来自接口计数)和“采集速率”可以判断。如果差距明显,可以缩小 FastTrack 范围,或者关闭它(会增加 CPU 占用)。

2. DNS 嗅探(应用识别,强烈建议)

/ip firewall mangle add chain=output  protocol=udp src-port=53 action=sniff-tzsp sniff-target=192.168.88.10 sniff-target-port=37008 comment=ROSDPI-DNS
/ip firewall mangle add chain=forward protocol=udp src-port=53 action=sniff-tzsp sniff-target=192.168.88.10 sniff-target-port=37008 comment=ROSDPI-DNS
  • output:路由器自己作为 DNS 服务器时,发给终端的应答。
  • forward:终端直连外部 DNS(如 223.5.5.5)时的应答。
  • 只镜像 DNS 应答,数据量很小。

提高识别率:

  • 在 DHCP 里把 DNS 下发为路由器地址,并开启 /ip dns set allow-remote-requests=yes。
  • 浏览器 / 系统里的“安全 DNS(DoH)”会绕过嗅探,可以在终端上关闭,或用防火墙拦截常见 DoH 地址。

3. 只读 API 账号(可选)

/user group add name=rosdpi policy=read,rest-api,api,!write,!policy,!sensitive
/user add name=rosdpi group=rosdpi password=<强密码> address=192.168.88.10
/ip service set www-ssl disabled=no   # REST API 走 HTTPS(或用 www 的 HTTP)

然后在 .env 设置:

ROS_URL=https://192.168.88.1
ROS_USER=rosdpi
ROS_PASSWORD=<强密码>

用于:DHCP 主机名、ARP / IPv6 邻居(IP↔MAC)、WAN 口实时速率、路由器 CPU / 内存,以及自动发现 LAN 的 IPv6 公网前缀。ROS-DPI 只发 GET 请求,不会修改路由器配置。

修改了这个用户组的权限后,已登录的会话仍沿用旧权限,需要重启容器或执行 /user active request-logout [find name=rosdpi]。

4. LAN 网段

ROS-DPI 用 LAN 网段判断哪一端是终端。默认是三个私网段,以下情况需要手动修改(.env 的 LAN_CIDRS,或 系统设置 → 网络):

  • 双 NAT(WAN 口也是 192.168.x.x 等私网地址):只填内网实际网段,否则 WAN 侧地址会被当成终端。
  • IPv6:配置了 ROS API 时会自动加入 LAN 接口上的公网前缀;否则需要手动填写。

排错

系统设置 → 运行状态 会显示:

现象 检查
流量采集一直“等待数据” 容器的 udp/2055 是否映射;主机防火墙;/ip traffic-flow target print
已处理流很多,但全部“丢弃” LAN 网段填错
DNS 应答为 0 mangle 规则是否命中(/ip firewall mangle print stats);udp/37008 是否映射
识别率低 终端是否在用 DoH;在 识别规则 → 未识别域名 Top 里补规则
统计明显偏少 FastTrack,见上文