树莓派部署OpenVPN后客户端无法访问局域网设备故障排查求助
排查步骤
1. 客户端侧验证
- 检查路由推送是否生效:Windows客户端执行
route print,Linux/macOS执行ip route,确认路由表中存在192.168.1.0/24条目,下一跳为10.8.0.1,出口为OpenVPN的tun网卡。如果没有对应路由,重启OpenVPN服务端后重新连接客户端,查看客户端连接日志确认push规则是否被正常接收。 - 测试树莓派局域网侧连通性:ping树莓派本身的局域网IP(即树莓派在192.168.1.0/24网段的地址,通常为192.168.1.2/3这类),如果该地址也无法ping通,问题出在树莓派的转发配置,优先排查树莓派侧设置。
2. 树莓派侧配置校验
- 开启内核IP转发:执行
cat /proc/sys/net/ipv4/ip_forward,返回值为0则未开启转发。
临时开启:sysctl -w net.ipv4.ip_forward=1
永久生效:修改/etc/sysctl.conf,将net.ipv4.ip_forward的值改为1,执行sysctl -p加载配置。 - 配置iptables转发和伪装规则:缺少NAT规则会导致局域网设备不知道回包路径,执行以下命令配置:
# 允许OpenVPN网段和局域网网段之间的转发 iptables -A FORWARD -s 10.8.0.0/24 -d 192.168.1.0/24 -j ACCEPT iptables -A FORWARD -s 192.168.1.0/24 -d 10.8.0.0/24 -j ACCEPT # 对访问局域网的OpenVPN流量做地址伪装 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -d 192.168.1.0/24 -j MASQUERADE
规则配置完成后执行netfilter-persistent save保存规则,避免重启后失效。
- 检查防火墙拦截:如果树莓派开启了ufw,执行
ufw allow 1194/udp放行OpenVPN端口,同时执行ufw default allow FORWARD放行转发流量。
3. 局域网侧排查
- 桌面PC防火墙配置:Windows默认防火墙会拦截跨网段的ICMP请求,临时关闭桌面PC防火墙测试连通性,如果可以ping通,在防火墙添加入站规则,允许来自
10.8.0.0/24网段的流量访问即可。 - 路由回包校验:如果未配置上述iptables伪装规则,需要在家庭主路由上添加静态路由,将
10.8.0.0/24网段的下一跳设置为树莓派的局域网IP,否则桌面PC的回包会被主路由丢弃。配置NAT伪装规则无需修改主路由,更适合普通家庭网络场景。
内容的提问来源于stack exchange,提问作者Vittorio Cortosi
相关产品推荐
相关产品推荐

