很多OpenWrt用户自行部署VPN服务之后,经常遇到客户端拨入成功却无法访问内网资源、部分终端联网异常的问题,多数时候并非VPN加密规则或者防火墙配置错误,根源都是IP地址段冲突。这篇指南完全基于家用和中小办公场景的OpenWrt运维经验,从故障定位到逐项排查给出可落地的操作步骤,不需要额外安装第三方工具就能完成全流程的OpenWrt VPN地址冲突排查。
先确认地址冲突的典型现象,排除其他同类故障
很多新手遇到VPN连接异常就直接修改服务端配置,反而越改越乱,首先要先区分地址冲突和其他VPN故障的差异,避免做无用功。正常的地址冲突引发的问题,通常是VPN客户端成功拨入之后,系统已经显示分配到了合法的虚拟IP,但是完全访问不了OpenWrt下的内网设备,或者内网设备主动访问VPN客户端的时候出现随机丢包,部分场景下还会出现OpenWrt本身的LAN口网关IP无法被VPN客户端ping通的情况。
这里要注意和端口转发规则错误、防火墙区域没放通的故障做区分,如果是防火墙配置问题,通常是所有VPN客户端都完全无法访问任何内网资源,而地址冲突很多时候表现为部分客户端能访问、部分不能,或者客户端拨入之后本地局域网的原有设备也出现断网的异常,故障表现带有明显的随机性。
第一层排查:核对OpenWrt本地多接口的地址段重叠情况
很多用户配置OpenWrt VPN的时候,默认直接用VPN服务端的预设地址段,比如OpenVPN默认常用的10.8.0.0/24,WireGuard默认常用的10.0.0.0/24,很容易和已经配置的LAN口、WAN口侧获取的上级路由网段、甚至Docker虚拟网段、旁挂的其他虚拟接口网段重叠。你可以登录OpenWrt的后台,进入接口总览页面,把所有已经启用的接口的IPv4地址段全部列出来,和VPN服务端配置里的虚拟地址池、推送的路由段做逐一比对。
这里的预期结果是所有网段都没有重叠,任何两个不同接口的地址段不能出现包含或者部分重合的情况,很多用户容易忽略WAN口的上游网段,如果你的OpenWrt是拨号上网,运营商分配的内网段刚好和你VPN配置的段重合,也会引发冲突,这种情况你直接看WAN口的获取到的IP和网关信息就能快速核对出来。
第二层排查:远端VPN客户端侧的本地网段冲突
很多时候OpenWrt本地的网段配置完全没问题,但是远端拨入的客户端所在的本地局域网网段和VPN分配的地址段、或者你要访问的OpenWrt侧内网网段重合,这种冲突属于跨侧的地址冲突,很容易被忽略。你可以让出现访问异常的客户端用户,在自己的设备上执行路由表查询命令,查看本地已经存在的所有路由条目,确认有没有和VPN虚拟网段、OpenWrt内网网段重合的条目。
这类冲突的典型表现是,客户端拨入VPN之后,原本可以正常访问的本地打印机、本地NAS突然无法访问,同时访问VPN远端的资源也出现异常,这是因为系统路由不知道该把发往重合网段的数据包发到本地网卡还是VPN虚拟网卡,最终引发路由混乱。这种场景下你不需要修改OpenWrt的全局配置,只需要给出现冲突的客户端单独调整VPN客户端的允许IP段,或者修改客户端本地的局域网网段就能解决。
验证修复效果的标准操作和常见误区
当你修改完冲突的网段之后,不要直接立刻测试业务访问,首先要在OpenWrt后台重启对应的VPN服务端,清空之前已经分配出去的所有冲突IP租约,然后让所有在线的VPN客户端全部断开重连,重新获取新的地址段下的IP,避免旧的无效路由残留在设备里影响测试结果。
很多用户的常见误区是为了省事,直接把VPN的地址段设置成非常偏门的小众网段,但是没有同步调整OpenWrt防火墙里VPN区域的转发规则,导致改完网段之后还是无法正常通信,反而误以为冲突没有解决。你改完网段之后要确认防火墙的转发规则里,VPN区域到LAN区域的转发权限是允许的,新的网段没有被加入到拒绝转发的黑名单里。
还有一类容易被忽略的场景,如果你在OpenWrt里配置了多个不同类型的VPN服务,比如同时开了OpenVPN服务端和WireGuard服务端,两个服务各自分配的地址段也要做隔离,不能出现重叠,否则不同VPN的客户端之间也会出现地址冲突引发的互访异常。
日常运维的时候,你可以提前给OpenWrt下所有虚拟接口、VPN服务、内网接口规划好互不重叠的大段地址池,后续新增服务的时候直接从预留的地址池里分配IP,就能从根源上避免后续再出现同类的地址冲突问题,减少不必要的排查时间。
极速VPN 
