← 返回博客

发布于 2026年6月7日

在 MikroTik 路由器上配置 VPN:RouterOS 7 的 WireGuard 设置(分步教程)

在 MikroTik(RouterOS 7)上用 Fiery 配置搭建 WireGuard 客户端的完整指南:接口、对端、地址、allowed-ips、路由、防火墙与 NAT——全屋 VPN。

要在 MikroTik 路由器上运行 VPN,RouterOS 7 需要一个 WireGuard 接口、一个用 Fiery 配置创建的对端(peer)、一个隧道地址、一条路由,以及一条 NAT(masquerade)规则。配置完成后,家庭网络的全部流量都会经过 VPN,无需在每台设备上安装应用。下面是 RouterOS 7 的准确命令以及对每个参数的说明。

简而言之:创建 /interface wireguard,添加带服务器公钥、endpointallowed-address=0.0.0.0/0 的对端,按配置分配隧道地址,添加经 WireGuard 的默认路由,并在 NAT 下添加一条 masquerade 规则。若只想让特定设备走 VPN,请使用 mangle 加一张独立的路由表。如果运营商封锁了普通 WireGuard,它在路由器上同样无法工作——这时需要在独立设备或迷你电脑上使用混淆协议(AmneziaWG)。

准备工作

  • 一台运行 RouterOS 7 的 MikroTik 路由器(WireGuard 仅在 7.x 中提供;可在 System → Packages 或用 /system resource print 查看版本)。
  • 一份来自 Fiery 的 WireGuard 配置——即由机器人 @fiery_VPN_bot 或小程序签发的 .conf 文本文件。
  • 通过 WinBox、网页界面(WebFig)或终端(SSH)访问路由器。下面的命令用于终端——可粘贴到 WinBox 的 New Terminal 窗口中。

如何读懂 Fiery 配置

打开 .conf 文件,它由两部分组成。[Interface] 段包含 PrivateKey(你客户端的私钥)和 Address(隧道地址,例如 10.0.0.5/32)。[Peer] 段包含 PublicKey(服务器公钥)、Endpoint(服务器 IP 和端口)、AllowedIPs(通常为 0.0.0.0/0),有时还有 PresharedKey。我们要把这些值移植到 RouterOS。

第 1 步:创建 WireGuard 接口

接口就是隧道的虚拟网卡。RouterOS 在创建时会生成一对密钥,但我们需要 Fiery 配置中的私钥,所以要显式指定它。

  • /interface wireguard add name=wg-fiery listen-port=13231 private-key="你的 [Interface] 中的 PRIVATEKEY"

这里 name=wg-fiery 是任取的名字;对于出站客户端,listen-port 可以是任意值(不必与服务器端口相同)。请将 private-key 完全按 [Interface] 中的内容粘贴,包括结尾的 =

第 2 步:分配隧道地址

取配置中的 Address 值(例如 10.0.0.5/32),把它附加到新接口上。这是路由器在 VPN 网络内的地址。

  • /ip address add address=10.0.0.5/32 interface=wg-fiery

第 3 步:添加对端(Fiery 服务器)

对端描述路由器要连接的服务器。把 [Peer] 段中的 PublicKeyEndpointAllowedIPs 移到这里。

  • /interface wireguard/peers add interface=wg-fiery public-key="服务器 PUBLICKEY" endpoint-address=服务器IP endpoint-port=端口 allowed-address=0.0.0.0/0 persistent-keepalive=25s

逐个参数说明:

  • public-key——服务器公钥([Peer] 中的 PublicKey 字段)。
  • endpoint-addressendpoint-port——把配置中的 Endpoint 拆成主机和端口(例如 203.0.113.10 和 51820)。
  • allowed-address——哪些流量进入隧道。0.0.0.0/0 表示“整个互联网都走 VPN”。若只想路由部分网段,则在此列出它们。
  • persistent-keepalive=25s——每 25 秒发送一次心跳,避免连接在运营商 NAT 后失效。

如果配置中含有 PresharedKey,请在命令中加上 preshared-key="该值"

第 4 步:添加全屋路由

RouterOS 7 的一个重要细节:即使设置了 allowed-address=0.0.0.0/0,路由器也不会自动添加默认路由(这点与手机应用不同)。必须手动创建路由。为避免把自己与路由器断开、也避免发往服务器的流量形成回环,最稳妥的做法是保留运营商的主网关,并谨慎添加路由。

最简单的“全部流量走 VPN”做法,是添加一条经该接口、距离值(distance)比运营商更小(更优)的默认路由:

  • /ip route add dst-address=0.0.0.0/0 gateway=wg-fiery distance=1

为了让发往 VPN 服务器本身的数据包仍走运营商(否则隧道会“自吞”),请为服务器地址添加一条经你 WAN 网关的单独路由:

  • /ip route add dst-address=服务器IP/32 gateway=你的WAN网关 distance=1

WAN 网关可用 /ip route print where dst-address=0.0.0.0/0 查看(即配置 VPN 之前 gateway 列中的值)。

第 5 步:防火墙与 NAT(masquerade)

要让局域网设备通过隧道访问互联网,需要在 WireGuard 接口上做 NAT 伪装:

  • /ip firewall nat add chain=srcnat out-interface=wg-fiery action=masquerade

同时确保防火墙放行已建立的连接以及 WireGuard 流量本身。在出厂固件上,默认规则加上对局域网的 forward 放行就够了。如果你是手动配置防火墙,请添加:

  • /ip firewall filter add chain=forward action=accept connection-state=established,related
  • /ip firewall filter add chain=forward in-interface=bridge out-interface=wg-fiery action=accept(把 bridge 换成你的局域网接口或网桥名)

验证连接

运行 /interface wireguard/peers print——应能看到较新的 last-handshake 时间以及不断增长的 rx/tx 计数。若没有握手,请核对密钥和 endpoint,并确认服务器端口未被运营商封锁。在网络中的某台设备上打开 IP 查询网站,它应显示 Fiery 所在地区的地址。

可选:仅让特定设备走 VPN

很多时候你只想让电视或某一台笔记本走 VPN,而网络其余部分直连。这时不要用经 WireGuard 的默认路由,而应使用基于策略的路由:在 mangle 中标记目标设备的流量,并把它送入一张独立的路由表。

  1. 创建路由表:/routing table add name=via-vpn fib
  2. 在该表中添加经隧道的路由:/ip route add dst-address=0.0.0.0/0 gateway=wg-fiery routing-table=via-vpn
  3. 按设备 IP 标记其流量:/ip firewall mangle add chain=prerouting src-address=192.168.88.50 action=mark-routing new-routing-mark=via-vpn passthrough=no

现在只有地址为 192.168.88.50 的设备会走 VPN。请在 DHCP 中为它保留固定 IP,以免规则失效。若涉及多台设备,可添加多条 mangle 规则或使用 address-list。

路由模式对比

模式哪些流量走 VPN难度适用场景
全屋(默认路由)所有设备的全部流量希望整个网络默认走 VPN
特定设备(mangle)仅所选 IP电视、游戏机或单台电脑走 VPN
特定网站/网段所列目的地址访问特定服务

关于 2026 年封锁的重要提示

2026 年 5 月,俄罗斯联邦通信监管局(Roskomnadzor)升级到了 ASN 与网段级别的封锁,并在部分地区破坏了普通 WireGuard 和 VLESS 的连接。MikroTik 路由器跑的正是这种“普通”WireGuard——如果运营商对该协议进行限制,隧道根本无法建立(没有握手),本教程也无济于事。这种情况下最可靠的选择是带混淆的 AmneziaWG(AWG 2.0),它会伪装流量。MikroTik 不原生支持它,因此 AmneziaWG 通常运行在独立的迷你电脑、支持混淆的 Keenetic/OpenWRT 固件路由器,或路由器后面的某台设备上。详见下文链接。

推荐阅读:VPN 协议对比为什么 VPN 在俄罗斯被封,以及 Fiery 的整体使用

常见问题

MikroTik 支持 WireGuard 吗?

支持,从 RouterOS 7 开始。6.x 中没有 WireGuard。如果你使用的是旧固件,请先在 System → Packages 中把 RouterOS 升级到 7.x 分支。

为什么配置后有握手却没有网络?

最常见的原因是漏掉了 WireGuard 接口上的 NAT masquerade 规则(第 5 步),或没有创建默认路由(第 4 步)。还要确认防火墙允许从局域网到隧道的 forward。

为什么需要一条到服务器 IP 的单独路由?

如果所有流量都进入隧道,那么发往 VPN 服务器本身的数据包也会试图走隧道——形成回环,连接永远建立不起来。为服务器地址添加一条经 WAN 网关的路由即可解决。

可以连接多个 Fiery 节点吗?

可以:为每个节点创建一个独立的 WireGuard 接口和对端,然后用 mangle/路由表把特定设备送入对应隧道。但“全屋”同一时间只能由一条默认路由承载。

如果运营商封锁了 WireGuard 怎么办?

MikroTik 没有混淆功能,因此当协议被封时,请在路由器后面的独立设备上使用 AmneziaWG,或直接通过 AmneziaVPN 应用在设备本身上连接 VPN。这是 2026 年最稳健的选择。

为 MikroTik 准备好的 WireGuard 配置只需点几下即可获得:在小程序 vpn.fiery.host 订阅,或给机器人 @fiery_VPN_bot 发消息——它会签发带密钥的文件并推荐最近的节点。Fiery 无日志,支持 MIR 卡、SBP 和加密货币付款。