pfSense OpenVPN客户端无法访问本地局域网,仅能访问服务器求助
我之前也碰到过一模一样的问题,折腾了好一阵才搞定,给你梳理一套逐步排查的思路,按顺序来大概率能找到问题:
第一步:先确认OpenVPN服务器的核心网络配置
- 检查VPN客户端子网和本地LAN子网是否重叠:比如如果你的LAN是
192.168.1.0/24,VPN客户端子网绝对不能用同一段,否则路由会直接冲突,客户端根本不知道该把LAN流量发往哪里。 - 核对OpenVPN服务器设置里的「IPv4 Local Network(s)」:必须准确填写你的本地LAN网段(比如
192.168.1.0/24),这是告诉VPN服务器要把哪些LAN网段的路由推送给客户端的关键配置。 - 确认「Push LAN to clients」选项是否勾选:这个开关会自动把LAN路由下发给客户端,没开的话客户端根本不知道有LAN网段需要走VPN。
- 查看客户端的路由表验证:Windows用命令
route print,Linux/macOS用netstat -rn,检查输出里有没有本地LAN网段的路由条目,且下一跳是VPN服务器的网关地址。
第二步:重点排查防火墙规则(最容易踩坑的地方)
1. OpenVPN区域的防火墙规则
- 必须创建一条入站允许规则:源选你的VPN客户端子网,目标选本地LAN子网,协议选「Any」(或者你需要的TCP/UDP),动作设为「Pass」。
- 注意规则顺序:pfSense是从上到下匹配规则,如果这条允许规则被排在「拒绝所有」的规则后面,等于白设,一定要把允许规则放在前面。
2. LAN区域的防火墙规则
- 别忽略LAN侧的出站回应规则:需要允许LAN设备向VPN客户端子网发起回应流量,也就是创建一条出站允许规则,源选LAN子网,目标选VPN客户端子网,动作「Pass」。
- 如果你的LAN默认规则是允许所有出站,那这条可能不需要,但如果是自定义了严格的LAN规则,一定要补上。
3. WAN区域的防火墙规则
- 这块和LAN访问关联不大,但可以快速确认下有没有误拦截OpenVPN的控制流量(比如UDP 1194端口),不过核心问题还是在前两个区域的规则。
第三步:路由与NAT设置检查
- 静态路由冲突排查:检查pfSense的「静态路由」列表,有没有自定义路由把VPN客户端子网的流量导去了错误的地方(比如WAN),正常情况下OpenVPN会自动生成正确的路由,但自定义路由可能会干扰。
- 出站NAT设置:不需要给VPN客户端访问LAN做NAT,反而要确保「Outbound NAT」里没有错误的规则把LAN流量转换成WAN出口。可以检查是否有「排除VPN到LAN的流量」的配置,或者用「Hybrid Outbound NAT」模式来精准控制。
第四步:客户端侧的快速验证
- 临时关闭客户端的防火墙/安全软件:比如Windows Defender防火墙、第三方杀毒软件,有时候这些工具会拦截VPN到LAN的流量。
- 检查客户端VPN连接属性:如果客户端设置了「使用VPN连接的默认网关」,那所有流量都会走VPN,但如果只是要访问LAN,只要有正确的LAN路由条目就行;如果没开默认网关,也要确保LAN路由已经被正确推送。
内容的提问来源于stack exchange,提问作者andi-g
相关产品推荐
相关产品推荐

