通过WireGuard VPN远程访问店内摄像头的静态路由配置求助
通过WireGuard VPN远程访问店内摄像头的静态路由配置求助
兄弟,我来帮你捋捋这个问题哈——你现在的核心问题是WireGuard VPN网段和店内摄像头所在的无线AP网段之间没有打通路由,再加上可能IP转发、AllowedIPs配置不到位,导致流量过不去。我给你一步步拆解解决:
第一步:先搞清楚你的各个网段信息
先把这几个关键IP段摸清楚,后面配置全靠这个:
- WireGuard VPN的网段:看你服务器配置里的
Address = serverip/24,假设是10.8.0.0/24(服务器自己的WG IP是10.8.0.1) - 店内视频服务器的WireGuard IP:比如
10.8.0.2(就是RPi连VPN后分配的IP) - 视频服务器上无线AP的网段(摄像头就在这个段里):比如
192.168.4.0/24(视频服务器的wlan0 IP应该是这个段的网关,比如192.168.4.1)
第二步:确保视频服务器开启IP转发
因为视频服务器要充当VPN网段和摄像头网段之间的“路由器”,必须开启IP转发:
- 临时生效(重启后失效):
echo 1 > /proc/sys/net/ipv4/ip_forward
- 永久生效(修改系统配置):
编辑/etc/sysctl.conf,找到net.ipv4.ip_forward=1这一行,去掉前面的注释符#,然后执行:
sysctl -p
第三步:修正WireGuard配置的AllowedIPs
店内视频服务器的WireGuard客户端配置
你现在服务器配置里的AllowedIPs = 0.0.0.0/32明显不对——这个配置只会让单个IP的流量走VPN,摄像头网段的流量根本不会被路由到VPN里。你需要把摄像头所在的网段加到AllowedIPs里,同时保留VPN网段:
[Peer] PublicKey = <服务器公钥> Endpoint = myserverip:51820 AllowedIPs = 10.8.0.0/24, 192.168.4.0/24 # 这里一定要加上摄像头的网段
修改完后重启WireGuard服务:
wg-quick down wg0 && wg-quick up wg0
你自己远程设备的WireGuard配置
同样,你的远程设备(比如笔记本)的AllowedIPs也需要包含摄像头网段,这样你的设备才知道要把摄像头的流量发去VPN服务器:
[Peer] PublicKey = <服务器公钥> Endpoint = myserverip:51820 AllowedIPs = 10.8.0.0/24, 192.168.4.0/24
第四步:在WireGuard服务器上添加静态路由
现在VPN服务器需要知道:要访问摄像头网段192.168.4.0/24的话,得把流量转发给视频服务器的WireGuard IP(比如10.8.0.2):
- 临时添加路由:
ip route add 192.168.4.0/24 via 10.8.0.2 dev wg0
- 永久添加路由(Debian系统):
如果是用netplan的新Debian版本,编辑/etc/netplan/00-installer-config.yaml,添加以下内容:
routes: - to: 192.168.4.0/24 via: 10.8.0.2 dev: wg0
然后执行netplan apply生效。
第五步:配置视频服务器的iptables转发规则
视频服务器需要允许VPN接口(wg0)和无线AP接口(wlan0)之间的流量互相转发:
# 允许VPN网段到摄像头网段的流量转发 iptables -A FORWARD -i wg0 -o wlan0 -j ACCEPT # 允许摄像头网段到VPN网段的回包流量转发 iptables -A FORWARD -i wlan0 -o wg0 -j ACCEPT
如果要永久保存iptables规则,可以执行iptables-save > /etc/iptables/rules.v4,然后安装iptables-persistent服务来自动加载规则。
最后检查几个关键点
- 确认视频服务器的wlan0接口没有防火墙阻止来自VPN网段的流量
- 摄像头的网关是不是设置成了视频服务器的wlan0 IP(比如192.168.4.1),这样摄像头的回包才能找到VPN的路径
- 用
wg show命令查看WireGuard的连接状态,确认视频服务器已经成功连上VPN
按照这个步骤走,应该就能打通VPN到摄像头的路由了!
备注:内容来源于stack exchange,提问作者Wild Star
相关产品推荐
相关产品推荐

