在大多数情况下,将路由器连接到 VPN 并不困难,但如果您想保护整个网络并同时保持最佳连接速度,那么最好的解决方案是使用 VPN 隧道
路由器 MikroTik的 事实证明是可靠且非常灵活的解决方案,但不幸的是
但不幸的是,目前要在 Mikrotik 路由器上配置 WireGuard,您需要更改固件。
刷写 Mikrotik,安装和配置 OpenWrt
首先你需要确保 OpenWrt 支持你的模型。 查看模型是否与其营销名称和图像匹配
去 openwrt.com
对于这个设备,我们需要 2 个文件:
您需要下载这两个文件: Install 安装 и 升级.
1.网络设置、下载和设置PXE服务器
下载
解压到一个单独的文件夹。 在config.ini文件中添加参数 rfc951=1 部分 [DHCP]. 此参数对于所有 Mikrotik 型号都是相同的。
让我们继续进行网络设置:您需要在计算机的一个网络接口上注册一个静态 IP 地址。
IP地址:192.168.1.10
网络掩码:255.255.255.0
跑 微型 PXE 服务器 代表管理员并在字段中选择 DHCP服务器 有地址的服务器 192.168.1.10
在某些版本的 Windows 上,此界面可能仅在以太网连接后出现。 我建议连接路由器并使用跳线立即切换路由器和 PC。
按“...”按钮(右下角)并指定下载 Mikrotik 固件文件的文件夹。
选择名称以“initramfs-kernel.bin 或 elf”结尾的文件
2.从PXE服务器启动路由器
我们用电线和路由器的第一个端口(wan、internet、poe in、...)连接 PC。 之后,我们拿一根牙签,将其插入带有“重置”字样的孔中。
我们打开路由器的电源并等待20秒,然后松开牙签。
在接下来的一分钟内,Tiny PXE 服务器窗口中应该会出现以下消息:
如果出现该消息,那么您的方向是正确的!
恢复网络适配器上的设置并设置为动态接收地址(通过 DHCP)。
使用相同的跳线连接到 Mikrotik 路由器的 LAN 端口(在我们的例子中是 2…5)。 只需将其从第一个端口切换到第二个端口即可。 打开地址
登录OpenWRT管理界面,进入“系统->备份/闪存固件”菜单部分
在“Flash new firmware image”小节中,单击“Select file (Browse)”按钮。
指定名称以“-squashfs-sysupgrade.bin”结尾的文件的路径。
之后,单击“Flash Image”按钮。
在下一个窗口中,单击“继续”按钮。 固件将开始下载到路由器。
!!! 在任何情况下都不要在固件过程中断开路由器的电源!
刷新并重启路由器后,您将收到带有 OpenWRT 固件的 Mikrotik。
可能出现的问题及解决方案
2019 年发布的许多 Mikrotik 设备都使用 GD25Q15 / Q16 类型的 FLASH-NOR 存储芯片。 问题是刷机时,没有保存设备型号的数据。
如果您看到错误“上传的图像文件不包含支持的格式。 请确保为您的平台选择通用图像格式。” 那么很可能问题出在闪存中。
这个很容易查:在设备终端运行命令查看型号ID
root@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 的服务器,则可以跳过此步骤。
我将使用该应用程序设置个人 VPN 服务器
在 OpenWRT 上配置 WireGuard 客户端
通过 SSH 协议连接到路由器:
ssh [email protected]
安装 WireGuard:
opkg update
opkg install wireguard
准备配置(将下面的代码复制到一个文件中,用你自己的替换指定的值并在终端中运行)。
如果您使用的是 MyVPN,那么在下面的配置中您只需要更改 服务工作组 - 服务器IP WG_KEY - 来自 wireguard 配置文件的私钥和 工作组_PUB - 公钥。
WG_IF="wg0"
WG_SERV="100.0.0.0" # ip адрес сервера
WG_PORT="51820" # порт wireguard
WG_ADDR="10.8.0.2/32" # диапазон адресов wireguard
WG_KEY="xxxxx" # приватный ключ
WG_PUB="xxxxx" # публичный ключ
# Configure firewall
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
# Configure network
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}"
# Add VPN peers
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 连接的保护。
引用
来源: habr.com