改动路由器 VPN 设置前,先备份这些东西
导出配置文件并不等于恢复方案。在改动路由器的 VPN 设置之前,先把密钥、固件版本和回退路径记录下来。
导出按钮给你的只是一个文件,而这个文件只是准备工作里最小的一块。真正能救回一个晚上的,是知道这个文件漏掉了哪些东西、当坏掉的正是隧道本身时你 如何回到路由器,以及恢复操作不会撤销什么。打开 VPN 页面之前,先把这三件事记下来。这些工作没有一件难,所以它才总被推后。
导出文件里到底有什么
在多数路由器固件上,导出的是一个设置包:接口、防火墙规则、DHCP 保留地址、VPN 配置,通常还有随之附带的私钥。所以这单个文件里含有密钥材料,这会改变它能放在哪里、谁能读取。
它也往往并不完整。配置档案可能引用密钥材料、证书文件,或是设置导出并不携带的软件包;在一台刚刷机的设备上恢复,会把引用恢复回来,却带不回被引用的对象。请阅读固件文档里关于导出范围的说明,而不要假定这个文件就是工作状态的磁盘镜像。
如果固件提供加密,就加密该文件,并放在不是路由器本机的地方。只居住在被它描述的设备上的备份,会在你最需要的那一刻消失。把导出文件当作它本来的凭据库来对待,因为到了别人手里,它就正是这个。
把周边的依赖一并记下
设置文件如果不知道属于什么,就毫无意义。记下型号、固件版本、所用的协议,以及这台路由器承担的角色。把这些事实写在不需要路由器也能读回来的地方。
四个细节决定一次恢复能否成功:
| Item | Where to record it | What breaks without it |
|---|---|---|
| Firmware version | Next to the backup file | Restore rejected or silently partial |
| VPN keys and certificates | Separate encrypted copy | Device restored, tunnel cannot authenticate |
| WAN and LAN addressing | Paper or offline note | Cannot reach the admin page afterwards |
| Out-of-band access | Console or management port | No path back in when the tunnel fails |
最后一行恰恰是大家会跳过的。如果你通往路由器的唯一路径,就是那条你即将重新配置的隧道,那么你已经安排好在最糟的时刻把自己锁在门外。
先把回退路径写下来
在改动任何东西之前,先写下如果路由器失联你会走的步骤:用哪根网线、哪个端口、哪个地址、哪个账号。然后在路由器还能工作的时候,把这些步骤实际走一遍。趁一切正常时确认控制台或管理界面有响应,因为等故障发生后才去发现控制台是坏的,会把十分钟的回退变成一次跑现场。
笔记里要写上恢复流程本身,而不只是文件名。读到它的人可能就是你:疲惫、时间不合适,完全不记得文件去了哪里。
恢复之后,核对究竟回来了什么
恢复完成不等于网络可用。要检查那些会悄悄回落到默认值的部分:DNS 解析器设置、指向旧接口的防火墙规则,以及任何指向隧道网关的路由。打开实验期间被修改过的规则,与导出文件里的内容作对比。半夜加上、早上就被忘掉的宽松放行规则,会在每一次恢复之后继续存在,因为它就在你刚刚重新载入的那个文件里。
在 OpenWrt 风格的设备上,有用的命令会打印出正在运行的隧道、路由表,以及路由器自身返回的解析结果:
wg show
ip -4 route
nslookup example.com 192.168.1.1然后从普通客户端测试,而不是从路由器上测试。设备上握手成功、客户端却无法解析域名,这是策略问题;除了手里拿着控制台的人,所有人都会觉得这是坏掉的 VPN。
恢复不能修复的东西
恢复一个密钥不会吊销任何东西,也不会告诉你存在多少份副本。如果回退的原因是设备丢失、导出文件被共享,或怀疑遭到入侵,那么只要有副本存在,旧密钥就依然有效,而恢复的配置会把它重新投入使用。
按服务商支持的流程轮换或吊销 peer,然后更新路由器,以及仍然持有旧材料的客户端。备份代表的是一个已知可用的状态,而不是一个已知安全的状态;当一台设备丢失时,这个差别恰恰要紧。