07.RouterOS配置wireguard

本文介绍如何在RouterOS中配置wireguard,包括两个ROS之间通过wireguard异地组网

(1)最常用的ros中的wireguard作为服务端,手机等设备作为客户端通过wireguard接入家庭局域网

  • 添加wireguard。名字(Name)及监听端口(Listen Port)可自定义
    1.png
  • 为wireguard接口配置ip。网段不可与现有局域网网段相同。以 10.20.30.1/24 为例
    2.png
  • 添加客户端(peer)配置
    3.png
  • 双击建好的peer1,拉到最下面,使用客户端(如ios的wireguard)扫描二维码导入配置
    4.png
  • 客户端点击 编辑,对端填入”ddns域名+wireguard监听的端口(即第一步创建时的Listen Port)”。如果想要手机所有流量均通过wireguard回家,则”路由的IP地址(段)”使用默认值”0.0.0.0/0, ::/0”,点击”存储“,开启wireguard即可
    5.png
  • 如果使用fakeip方案,可以选择仅出国及访问局域网流量通过wireguard到达家里的ros再出去。前提客户端的DNS使用mosdns,将”路由的IP地址(段)”改为wireguard的IP段,fakeip段、家里局域网段(v4+v6)、TG的IP段
1
10.20.30.0/24, 28.0.0.0/8, f2b0::/18, 10.0.0.0/24, dc00::/64, 91.108.56.0/22, 91.108.4.0/22, 91.108.8.0/22, 91.108.16.0/22, 91.108.12.0/22, 149.154.160.0/20, 91.105.192.0/23, 91.108.20.0/22, 185.76.151.0/24, 2001:67c:4e8::/48, 2001:b28:f23f::/48, 2a0a:f280::/32, 2001:b28:f23c::/48, 2001:b28:f23d::/48

(2)介绍两个ROS之间通过wireguard异地组网

  • 以ros1号无公网IP,ros2号有公网IP且已做好域名ddns为例
ROS1号 ROS2号
LAN IP 10.0.0.1/24 192.168.31.1/24
wireguard IP 10.20.30.1/24 10.20.40.1/24
DDNS域名 ros2.66666.xyz
wireguard监听端口 13231 13231
  • 前提:ros1号已按第一种方法配置好wireguard

  • 为ros2号添加wireguard,操作与ros1号一致,Name及Listen Port随意,以13231为例

  • 为ros2号的wireguard配置ip。网段不可与ros2号现有局域网网段相同,也与ros1使用的wireguard网段不同,例如ros1的wireguard ip为10.20.30.1/24,ros2的wireguard ip为10.20.40.1/24

  • 在ros1中添加ros2号的peer。案例以ros2号有公网IP为例,在Endpoint、EndpointPort中填入DDNS域名及端口
    如果ros1号和ros2号均有公网IP,则Endpoint、EndpointPort都填入对方的DDNS域名及端口

  • 同理,在ros2号中添加ros1号的peer。ros1号无公网IP,则Endpoint、EndpointPort留空

  • 在ros1号中通过ping ros2号的wireguard ip检测wireguard隧道是否联通

  • 在ros1号和ros2号中分别添加route,将对方的局域网端通过wireguard联通。图示为ros2号添加route

  • 参照上一步,在ros1号中ping ros2号的LAN IP (192.168.31.1)检测route是否正确

  • 现在两个ros的局域网已通过wireguard隧道连接

  • 如果IPv4防火墙里的动态伪装限制了out interface为pppoe-out1,则需要新增一条以wireguard为out interfaces的动态伪装,没有限制则不需要做此操作。