如何配置WireGuard服务器以阻止VPN客户端访问本地LAN
没问题,这个需求很常见,咱们可以通过调整服务器的防火墙规则来实现——既让你的亲戚能通过VPN正常访问互联网,又完全隔离他访问你本地LAN里的设备。下面是结合你现有配置的具体操作步骤:
首先先明确两个关键信息:
- 你的WireGuard服务器网段是
10.24.36.0/24(从你的配置里能看到) - 你需要先确认自己本地LAN的网段,比如一般家庭网络是
192.168.1.0/24或192.168.5.0/24这类。可以在树莓派终端运行ip a命令查看,比如eth0接口的地址后缀就是你的LAN网段。
方法一:用iptables(原生防火墙配置)
添加阻止LAN访问的规则
打开树莓派终端,运行以下命令(把192.168.5.0/24替换成你实际的LAN网段):sudo iptables -I FORWARD -s 10.24.36.0/24 -d 192.168.5.0/24 -j DROP这条规则的作用是:拒绝所有来自VPN网段的流量访问你的LAN网段。
如果你连亲戚访问树莓派本身的LAN IP都不想允许,再追加一条规则(替换成树莓派的LAN IP,比如
192.168.5.10):sudo iptables -I FORWARD -s 10.24.36.0/24 -d 192.168.5.10/32 -j DROP保存规则防止重启失效
树莓派重启后iptables规则会自动清空,所以要把规则持久化:sudo iptables-save | sudo tee /etc/iptables/rules.v4然后安装
iptables-persistent让系统开机自动加载规则:sudo apt update && sudo apt install iptables-persistent -y安装过程中会提示是否保存当前IPv4/IPv6规则,直接选Yes即可。
方法二:用ufw(简易防火墙配置)
如果你的树莓派用的是ufw(很多默认安装场景),操作更直观:
添加阻止规则:
sudo ufw deny from 10.24.36.0/24 to 192.168.5.0/24同样,如果要阻止访问树莓派本身:
sudo ufw deny from 10.24.36.0/24 to 192.168.5.10重新加载ufw使规则生效:
sudo ufw reload
验证配置
让你的亲戚连接VPN后,尝试访问你LAN里的设备(比如家里电脑的IP),应该会无法连接;同时打开网页测试互联网访问,确认能正常使用。
原理说明
你的客户端配置里AllowedIPs = 0.0.0.0/0意味着所有流量都走VPN,包括到你LAN的流量。我们通过防火墙的FORWARD链拦截了VPN网段到LAN网段的流量,这样就实现了互联网访问正常,但LAN完全隔离的效果。你的现有WireGuard服务器配置本身不需要修改,只需要添加这些防火墙规则就行。
备注:内容来源于stack exchange,提问作者Viktor

