You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派部署PiVPN后通过VPN无法访问互联网故障求助

故障根因排查与修复方案

第一步:清理无效iptables规则,重建正确NAT规则

你手动修改了VPN子网后,原有PiVPN自动生成的iptables规则仍然匹配旧的10.8.0.0网段,导致新网段流量无法正常转发:

  • 先查看现有nat表规则确认冲突:sudo iptables -t nat -L -n -v
  • 清空POSTROUTING链旧规则:sudo iptables -t nat -F POSTROUTING
  • 重新添加匹配10.3.0.0网段的地址伪装规则:sudo iptables -t nat -A POSTROUTING -s 10.3.0.0/24 -o eth0 -j MASQUERADE
  • 配置FORWARD链允许双向转发:
sudo iptables -A FORWARD -i tun0 -o eth0 -s 10.3.0.0/24 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o tun0 -d 10.3.0.0/24 -j ACCEPT
  • 安装iptables-persistent保存规则避免重启失效:
sudo apt install iptables-persistent -y
sudo iptables-save > /etc/iptables/rules.v4

第二步:同步PiVPN全局配置与实际子网参数

你的debug日志显示/etc/pivpn/openvpn/setupVars.conf里的pivpnNET参数仍然是10.8.0.0,后续执行pivpn相关命令会生成错误规则,直接编辑该文件将参数修改为pivpnNET=10.3.0.0,然后重启OpenVPN服务:sudo systemctl restart openvpn

第三步:修复tun0本地不通问题

你无法通过tun0 ping通127.0.0.1属于反向路径过滤导致的丢包,按以下步骤修复:

  • 检查tun0状态:ip a show tun0,确认IP为10.3.0.1/24且接口状态为UP
  • 编辑/etc/sysctl.conf关闭严格反向路径过滤,添加以下配置:
net.ipv4.conf.all.rp_filter=2
net.ipv4.conf.tun0.rp_filter=2
net.ipv4.conf.eth0.rp_filter=2
  • 执行sysctl -p让内核参数生效
  • 修正MTU配置避免传输层丢包:把OpenVPN server配置里的tun-mtu 1400、mssfix 1360修改为tun-mtu 1500、mssfix 1420

第四步:清理错误路由推送

你当前配置里的push "route 192.168.15.1 255.255.255.0"属于配置错误(IP和掩码不匹配),不需要访问该网段直接注释该行,需要的话修改为push "route 192.168.15.0 255.255.255.0",避免客户端路由混乱。

全部修改完成后重启树莓派,先在本地测试ping 10.3.0.1 -I tun0、ping 1.1.1.1 -I tun0正常后,再使用客户端连接测试即可。

内容的提问来源于stack exchange,提问作者OroZoro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:00:00