在大多数情况下,将路由器连接到VPN并不困难,但是如果要在保持最佳连接速度的同时保护整个网络,那么最好的解决方案是使用WireGuard VPN隧道。Mikrotik路由器已经确立了其可靠且非常灵活的解决方案的地位,但不幸的是,RouterOS上仍不支持WireGuard,并且尚不清楚何时出现以及在哪个版本中。最近,众所周知,WireGuard VPN隧道的开发人员提供了一组补丁程序,这些补丁程序将使他们的VPN隧道组织软件成为Linux内核的一部分,我们希望这将为RouterOS的实现做出贡献。但是目前,很遗憾,要在Mikrotik路由器上配置WireGuard,您需要更改固件。固件Mikrotik,安装和配置OpenWrt
首先,您需要确保OpenWrt支持您的模型。您可以在mikrotik.com上查看该模型是否符合其营销名称和图像。在固件下载部分访问openwrt.com 。
对于此设备,我们需要2个文件:downloads.openwrt.org/releases/18.06.2/targets/ar71xx/mikrotik/openwrt-18.06.2-ar71xx-mikrotik-rb-nor-flash-16M-initramfs-kernel.bin|elf
downloads.openwrt.org/releases /18.06.2/targets/ar71xx/mikrotik/openwrt-18.06.2-ar71xx-mikrotik-rb-nor-flash-16M-squashfs-sysupgrade.bin
您需要下载两个文件:安装和升级。
1.网络设置,加载和设置PXE服务器
下载适用于Windows的Tiny PXE服务器最新版本。解压缩到一个单独的文件夹。在config.ini文件中,添加参数rfc951 = 1 section [dhcp]。对于所有Mikrotik模型,此参数均相同。
我们转向网络设置:您需要在计算机的网络接口之一上注册一个静态IP地址。
IP地址:192.168.1.10网络
掩码:255.255.255.0
以Administrator身份
启动Tiny PXE Server,并在DHCP Server字段中选择地址为192.168.1.10的服务器在某些版本的Windows上,该接口仅在以太网连接后才会出现。我建议连接路由器,并立即使用跳线将路由器和PC连接起来。
单击“ ...”按钮(右下角),并指出将Mikrotik固件文件下载到的文件夹。选择一个名称以“ initramfs-kernel.bin或elf”结尾的文件
2.从PXE服务器下载路由器
我们将PC线连接到路由器的第一个端口(WAN,Internet,poe in等)。之后,我们取一个牙签,将其插入刻有“ Reset”字样的孔中。
打开路由器的电源,等待20秒钟,然后松开牙签。在下一分钟内,Tiny PXE Server窗口中将出现以下消息:
如果出现消息,则说明您的方向正确!恢复网络适配器上的设置,并动态设置接收地址(通过DHCP)。使用相同的跳线连接到Mikrotik路由器的LAN端口(在本例中为2 ... 5)。只需将其从端口1切换到端口2。在浏览器中打开地址192.168.1.1。
进入OpenWRT管理界面,然后转到菜单部分“系统->备份/闪存固件”,
在“闪存新固件映像”子区域中,单击“选择文件(浏览)”按钮。
指定名称以“ -squashfs-sysupgrade.bin”结尾的文件的路径。
之后,单击“ Flash Image”按钮。在下一个窗口中,单击“继续”按钮。将开始将固件下载到路由器。
!!! 在固件过程中请勿断开路由器的电源!
刷新并重新启动路由器后,您将收到带有OpenWRT固件的Mikrotik。可能的问题和解决方案
许多2019 Mikrotik设备使用FLASH-NOR存储芯片GD25Q15 / Q16类型。问题在于,刷新不会保存设备模型数据。如果看到错误“上载的图像文件不包含受支持的格式。确保为您的平台选择通用图像格式。” 那么问题很可能出在闪存中。这很容易验证:运行命令以在设备终端中验证型号IDroot@OpenWrt: cat /tmp/sysinfo/board_name
如果得到答案“未知”,则需要以“ rb-951-2nd”的形式手动指定设备型号。要获取设备型号,请运行以下命令root@OpenWrt: cat /tmp/sysinfo/model
MikroTik RouterBOARD RB951-2nd
收到设备型号后,我们将手动安装它:echo 'rb-951-2nd' > /tmp/sysinfo/board_name
之后,您可以通过Web界面或使用sysupgrade命令刷新设备。使用WireGuard创建VPN服务器
如果您已经有配置了WireGuard的服务器,则可以跳过此项目。我将使用有关cat 的MyVPN.RUN应用程序来配置个人VPN服务器,我已经发表了一篇评论。在OpenWRT上配置WireGuard客户端
通过SSH连接到路由器:ssh root@192.168.1.1
安装WireGuard:opkg update
opkg install wireguard
准备配置(将下面的代码复制到文件中,用您自己的值替换指定的值并在终端中运行)。如果使用MyVPN,则在下面的配置中,只需更改WG_SERV-服务器的IP,WG_KEY -wireguard配置文件中的私钥,以及WG_PUB-公钥。WG_IF="wg0"
WG_SERV="100.0.0.0"
WG_PORT="51820"
WG_ADDR="10.8.0.2/32"
WG_KEY="xxxxx"
WG_PUB="xxxxx"
uci rename firewall.@zone[0]="lan"
uci rename firewall.@zone[1]="wan"
uci rename firewall.@forwarding[0]="lan_wan"
uci del_list firewall.wan.network="${WG_IF}"
uci add_list firewall.wan.network="${WG_IF}"
uci commit firewall
/etc/init.d/firewall restart
uci -q delete network.${WG_IF}
uci set network.${WG_IF}="interface"
uci set network.${WG_IF}.proto="wireguard"
uci set network.${WG_IF}.private_key="${WG_KEY}"
uci add_list network.${WG_IF}.addresses="${WG_ADDR}"
uci -q delete network.wgserver
uci set network.wgserver="wireguard_${WG_IF}"
uci set network.wgserver.public_key="${WG_PUB}"
uci set network.wgserver.preshared_key=""
uci set network.wgserver.endpoint_host="${WG_SERV}"
uci set network.wgserver.endpoint_port="${WG_PORT}"
uci set network.wgserver.route_allowed_ips="1"
uci set network.wgserver.persistent_keepalive="25"
uci add_list network.wgserver.allowed_ips="0.0.0.0/1"
uci add_list network.wgserver.allowed_ips="128.0.0.0/1"
uci add_list network.wgserver.allowed_ips="::/0"
uci commit network
/etc/init.d/network restart
这样就完成了WireGuard的设置!现在,所有连接设备上的所有流量都受到VPN连接的保护。参考文献
来源#1MyVPN上的修改说明(此外,还提供标准Mikrotik固件上的L2TP,PPTP配置说明)OpenWrt WireGuard客户端