RouterOS 7 Wireguard 双wan实现源进源出

最近家里拉了两根宽带,一根是电信,另一根也是电信,电信宽带都有公网IP,于是一直在想怎么实现两根宽带的公网IP都可以用来接入家里RouterOS上的Wireguard

Wireguard并不遵循源进源出,这会导致在多上游的情况下,只有其中一个上游可以用,因为使用了默认路由表的默认路由(参考:wireguard can’t handshake with mwan3 · Issue #9538 · openwrt/packages · GitHub

于是我在各处搜索 终于研究出了怎么实现源进源出 这里记录一下

参考了routeros7 的源进源出的 bug - V2EXMikroTik7做单线多拨负载均衡

下面开始正文:

首先情况是有两个PPPoE链接

首先在Routing > Tables 创建两个Table 记得打开FIB

然后到 IP > Route里面 右上角选择你刚才创建的两个Table

如图所示添加路由

记得另一个Table也要按照这个添加 Gateway填另一个PPPoE链接

然后使用这段命令创建Mangle实现源进源出

1
2
3
4
5
/ip firewall mangle 
add action=mark-connection chain=prerouting connection-mark=no-mark connection-state=new in-interface=[改成你的PPPoE链接] new-connection-mark=conn_wan1 passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark connection-state=new in-interface=[改成你的PPPoE链接] new-connection-mark=conn_wan2 passthrough=yes
add action=mark-routing chain=output connection-mark=conn_wan1 new-routing-mark=to_wan1(这里记得修改成你刚才创建的Table) passthrough=yes
add action=mark-routing chain=output connection-mark=conn_wan2 new-routing-mark=to_wan2(这里记得修改成你刚才创建的Table) passthrough=yes

然后要设置Routing Rule

1
2
3
/routing rule
add action=lookup comment=pppoe-out1 disabled=no src-address=你的 pppoe-out1 的公网地址 table=(这里记得修改成你刚才创建的Table)
add action=lookup comment=pppoe-out2 disabled=no src-address=你的 pppoe-out2 的公网地址 table=(这里记得修改成你刚才创建的另一个Table)

这样就大功告成了。

注意:由于使用了Mangle 所以需要关闭Fasttrack

RouterOS 7 Wireguard 双wan实现源进源出

http://jeffz.page/posts/2015670204/

作者

JeffZ

发布于

2025-04-03

更新于

2025-04-03

许可协议

评论