WebFig

WebFig 是一个基于 Web 的 RouterOS 实用工具,无需额外软件即可进行监控、配置和故障排查。它支持 HTTPS 和证书管理(包括通配符证书),并通过 SSL/TLS 为路由器配置提供安全访问。

WebFig

简介

WebFig 是一个基于 Web 的 RouterOS 管理工具,允许你配置、监控和排查路由器。它是 WinBox 的替代方案,提供类似的布局,并且可以访问几乎所有 RouterOS 功能。

作为一个平台无关的工具,WebFig 可以用任何带 Web 浏览器的设备管理路由器,无需安装特定平台的软件。

WebFig 支持三项主要功能:

  • 配置 - 查看和修改当前路由器配置。
  • 监控 - 监控路由器状态、路由信息、接口统计、日志和其他运行数据。
  • 故障排查 - 访问并使用内置的 RouterOS 诊断工具,例如 Ping、Traceroute、Packet Sniffer、Traffic Generator 等。

连接到路由器

如首次配置章节所述,默认情况下可以用用户名 admin,以及空密码或设备标签上提供的默认密码(取决于型号)访问设备。打开 Web 浏览器并在地址栏输入设备 IP 地址;默认是 192.168.88.1。确保管理设备配置了同一子网内的 IP 地址(例如 192.168.88.2),否则三层连通性无法工作。

启用 HTTPS

WebFig 通常只从本地网络使用:默认情况下防火墙会阻止 WAN 端口上的路由器 Web 服务,你通过路由器的 LAN 地址(例如 192.168.88.1)访问它。启用 HTTPS 会加密这些管理流量,使凭据和配置不会以明文形式在 LAN 上传输。

使用哪种证书取决于你访问路由器的方式:

  • 通过其 LAN IP 地址或内部主机名(常见情况) —— 使用在路由器上生成的自签名证书。公共证书颁发机构无法为 192.168.88.1 这类私有地址签发证书,因此这是默认做法。
  • 通过真实的公共域名 —— 你可以使用来自 Let's Encrypt 的公开可信证书,无需分发 CA 即可避免浏览器警告。只有当你确实用该域名打开 WebFig 时这才有用,因此它主要适用于通过公共名称而非 LAN IP 管理的路由器(在下一节中描述)。

使用自签名证书

自签名证书会立即加密连接。浏览器在首次使用时不信任它,但你可以通过导出路由器的根 CA 并将其导入到你用来管理路由器的计算机的受信任存储中,来消除警告。

提示

WebFig 支持通配符证书。你可以通过在 common-name 属性中指定通配符来生成一个,例如 common-name=*.mikrotik.com。 要生成你自己的证书并启用 HTTPS 访问,你必须配置以下内容:

在路由器上创建你自己的根 CA 并签名

[admin@MikroTik] > certificate add name=local-cert common-name=local-cert key-usage=key-cert-sign,crl-sign 
[admin@MikroTik] > /certificate/sign local-cert 
  progress: done

警告

如果你已经有证书颁发机构,或正在使用外部服务签名证书,请在外部创建并签名证书,之后把它导入到路由器。导入证书时,请确保它被标记为受信任。

为 WebFig 创建证书(终端实体证书)

[admin@MikroTik] > certificate add name=WebFig common-name=192.168.88.1
[admin@MikroTik] > certificate sign WebFig 
  progress: done

证书列表示例:

[admin@MikroTik] > /certificate/print
Flags: K - private-key; A - authority; T - trusted
Columns:NAME        COMMON-NAME     FINGERPRINT                                                     
 0  KAT  local-cert  local-cert      9b6363d033c4b2e6893c340675cfb8d1e330977526dba347a440fabffd983c5d
 1  KAT  WebFig      192.168.88.1    9f84ac2979bea65dccd02652056e5559bcdf866f8da5f924139d99453402bd02

启用 HTTPS 服务并分配证书

[admin@MikroTik] > /ip/service/set www-ssl certificate=WebFig disabled=no

现在你可以通过 https://192.168.88.1 访问 WebFig。

警告

大多数 Web 浏览器默认不信任自签名证书,因此首次连接时你需要接受警告或手动信任该证书。或者,导出根 CA 证书并将其导入你的操作系统或浏览器信任存储。浏览器维护自己的信任存储,可能与操作系统的不同——在 OS 层面信任证书可能不会影响浏览器。

使用公开可信的证书(Let's Encrypt)

如果你通过真实的公共域名而非 LAN IP 访问路由器,你可以使用来自 Let's Encrypt 的浏览器信任证书,而不必分发根 CA。RouterOS 为此内置了一个 ACME 客户端。

在选择此选项之前,请注意它与纯 LAN 环境的交互方式:

  • 公共 CA 不为私有 IP 地址签发证书,因此当你在 https://192.168.88.1 打开 WebFig 时,这不会消除警告。
  • 证书仅对其域名有效,因此你必须用该名称浏览 WebFig。要让该名称在 LAN 内解析到路由器,你通常需要一个指向该 LAN 地址的本地(split-horizon)DNS 记录。
  • DNS-01 质询——用于 IP Cloud <id>.sn.mynetname.net 名称——不需要入站 WAN 端口,因此即使防火墙阻止来自 WAN 的 WebFig,它仍然可用。

为路由器的 IP Cloud DDNS 名称申请证书:

/ip/cloud/set ddns-enabled=yes
/certificate/add-acme domain-names=[/ip/cloud/get dns-name]

或为你自己的域名:

/certificate/add-acme domain-names=router.example.com

签发的证书以域名命名,并在 /certificate/print 中显示 a (acme-manage) 标志。把它分配给 www-ssl 服务,然后用该域名打开 WebFig:

/ip/service/set www-ssl certificate=router.example.com disabled=no

证书在其有效期过去 80% 后会自动续期。

终端

WebFig 中的 Terminal(命令行界面,CLI)位于右上角。它提供与 WinBox 界面中 New Terminal 相同的功能。

WebFig Terminal

Skins(皮肤)

WebFig Design Skin 是用于定制界面外观以提升可用性的工具。它不是一个安全功能。拥有足够权限的用户仍然可以通过其他方式(包括直接 CLI 访问)访问所有可用的配置选项。

设计皮肤

如果用户拥有足够的权限(用户组启用了 policy 和 sensitive 策略),Design Skin 按钮就会变为可用。启用此选项将打开界面定制工具。

要限制对 Design Skin 菜单的访问,请在用户组配置中禁用 policy 和 sensitive 权限。

可用操作:

  • Hide menu - 隐藏一个菜单及其所有子菜单。
  • Hide submenu - 隐藏特定子菜单。
  • Hide tabs - 在多标签视图中隐藏单个标签页。
  • Rename menus and items - 更改菜单标签,例如用于本地化或提高清晰度。
  • Add a note to an item - 在详细视图中添加注释。
  • Make item read-only - 为安全起见防止编辑选定字段。
  • Hide flags - 在列表视图和详细视图中隐藏标志。

  • Add field limits - 限制详细视图中允许的值:

    • Numeric intervals (..) - 定义允许的范围,例如为 MTU 等数值字段定义 1..10。
    • Field prefix limits - 限制基于文本的字段允许的前缀。末尾的 $ 强制精确前缀匹配。例如,station$ 把值限制为仅 station。

  • Add tab - 在字段前插入带标签的区段分隔符。

  • Add separator - 在字段前插入水平分隔线。

说明

数值区间不能超出 RouterOS 为给定字段定义的限制。 说明

Set 字段表示可选项的集合(复选框集合),例如用户组策略或 RADIUS 服务设置。 说明

应用于 combo-box 字段的限制也会限制可用的下拉选项。

皮肤设计示例

要限制用户只能使用特定服务,请为 RADIUS Service 字段添加限制。

生成的配置只允许 Limit 字段中指定的服务。

定制皮肤

可在这里获取可在皮肤 *.json 文件中使用的 Status page 结构示例:status_main_example.json

状态内容遵循以下结构: {"Status": {"Status": {}}}

状态记录按顺序显示,例如:

"7": {
  "alias": (path to the record),
  "note": (optional; free form text that appears under the record),
  "name": (optional; alternative name for the record),
  "tab": (optional; name of the tab that this and following records belong to),
  "separator": 1 (optional; should a separating line be placed before this record)
},

路径 (alias) 结构

alias 路径(例如:"IP:Firewall:Filter Rules:*17:Statistics:Packet Rate Graph" 以及对应的 URL:"router_IP/WebFig/#IP:Firewall.Filter_Rules.17")由以冒号分隔的组件组成:

  • Group(如果有)→ IP:
  • Service 或 Name → Firewall:
  • Container 或 Tab Name → Filter Rules:
  • 星号 (*) 和 Object ID → 取自所打开项的 URL(例如 17)
  • Tab 名称(如果适用)→ Statistics
  • 字段名 → Packet Rate Graph

使用皮肤

要应用皮肤,请把它分配给用户组。分配后,该组中的所有用户在登录 WebFig 或 WinBox 时会自动使用所选皮肤。

/user/group/set your_group_name skin=your_skin

要在另一台路由器上使用皮肤,请把皮肤文件复制到目标设备的 skins 目录中。复制后,在该路由器上把皮肤分配给用户组即可启用。