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

通过OpenVPN(基于PiVPN)连接本地网络:连接不稳定问题

解决PiVPN跨网络访问家里设备的子网冲突问题

这种子网冲突的问题我帮不少人排查过,核心原因很明确:你当前身处的外部网络,和家里PiVPN所在的局域网用了一模一样的子网段(都是192.168.1.0/24)。系统的路由表会优先把同子网的请求发往本地网卡,而不是VPN隧道,所以你访问192.168.1.1时才会跳到当前网络的路由器,根本没走VPN。下面给你几个从彻底到临时的解决办法:

1. 修改家里局域网的子网段(最彻底的方案)

这是一劳永逸的办法,避开常见的冲突网段:

  • 登录家里的路由器管理后台(比如192.168.1.1),找到LAN设置,把子网段改成不常见的,比如192.168.3.0/24(避开192.168.1.x、192.168.0.x这类大众网段)
  • 重启路由器后,登录PiVPN服务器,重新生成客户端配置文件:运行sudo pivpn add创建新的配置,或者sudo pivpn update更新现有配置
  • 把新的配置文件导入TunnelBlick,之后不管连接什么外部网络,都不会再出现子网冲突的问题

2. 手动修改TunnelBlick的路由规则(临时应急方案)

如果不想改动家里的网络,可以给TunnelBlick添加强制路由规则:

  • 打开TunnelBlick,右键点击菜单栏里的VPN连接,选择「Edit Configurations」
  • 在打开的配置文件中,找到route相关的配置块,添加一条精准路由:
    route 192.168.1.1 255.255.255.255
    
    这条规则会强制把访问家里路由器(192.168.1.1)的请求发往VPN隧道;如果要访问家里所有设备,改成:
    route 192.168.1.0 255.255.255.0
    
  • 保存配置后重新连接VPN,测试是否能正常访问家里的设备

3. 强制所有流量走VPN(快速但有副作用)

适合只需要访问家里网络,不需要当前外部网络本地资源的场景:

  • 打开TunnelBlick的配置界面,进入「Settings」选项卡
  • 勾选「Send all traffic over VPN connection」选项
  • 重新连接VPN后,所有网络请求都会走VPN隧道,自然就能访问家里的设备,但当前网络的本地资源(比如办公室打印机)就无法访问了

额外排查技巧

连接VPN后,可以在Mac终端里做这些验证:

  • 运行netstat -rn查看路由表,找192.168.1.0的条目,如果网关指向本地网卡(比如en0),说明路由冲突;如果指向VPN网卡(比如utun0),就没问题
  • 运行ping 192.168.1.1,同时开另一个终端运行tcpdump -i utun0 icmp,如果能看到ICMP数据包,说明请求走了VPN;如果看不到,就是路由没生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:44:03