You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现本地网络设备访问WireGuard VPN子网内的设备?

如何实现本地网络设备访问WireGuard VPN子网内的设备?

看起来你已经理清了整体思路,核心就是让本地局域网和WireGuard的虚拟子网打通双向访问,我给你拆解成几个实操步骤,都是自己折腾过的靠谱方案,应该能解决你的问题:

第一步:搞定WireGuard服务器(NAS上的Docker容器)的基础配置

首先得确保NAS宿主机开启IP转发,这是跨子网通信的前提:

  • 登录NAS终端,执行sudo sysctl -w net.ipv4.ip_forward=1临时生效;然后编辑/etc/sysctl.conf,把net.ipv4.ip_forward=1的注释去掉,重启NAS后永久生效,避免重启后规则丢失。

接着修改Docker里WireGuard的配置文件(一般是wg0.conf):
[Interface]段添加流量转发和地址伪装规则,让WG子网的流量能被本地局域网识别:

[Interface]
PrivateKey = 你的服务器私钥
Address = 10.8.0.1/24  # 这里是WG子网的网关IP,可根据自己需求修改
ListenPort = 51820
# 下面的eth0要换成NAS实际连接本地局域网的网卡名(用ip addr命令查看,比如enp0s3、br0)
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

如果你的WireGuard Docker用的是默认桥接模式,建议改成host模式,这样容器能直接复用NAS的网络栈,减少不必要的端口转发和网络隔离问题。

第二步:给树莓派(WG客户端)推送本地局域网路由

在服务器端对应树莓派的[Peer]配置段里,修改AllowedIPs,把本地局域网网段加进去,让树莓派知道要把本地局域网的流量走WG隧道传输:

[Peer]
PublicKey = 树莓派的公钥
AllowedIPs = 10.8.0.2/32, 192.168.1.0/24  # 前面是树莓派的WG IP,后面替换成你家本地局域网的实际网段

改完后重启WireGuard服务器容器,让配置生效。

第三步:给本地局域网添加静态路由,指向WG子网

这一步是让本地所有设备知道:访问WG子网的设备(比如树莓派的10.8.0.2),需要把流量发给NAS。

最省心的方式是在家庭主路由器上配置:

  1. 登录路由器管理后台(一般是192.168.1.1或192.168.0.1)
  2. 找到「静态路由」或「路由表」设置项
  3. 添加一条路由规则:
    • 目标网络:WG子网网段,比如10.8.0.0/24
    • 子网掩码:255.255.255.0
    • 下一跳(网关):NAS的本地IP,比如192.168.1.100
  4. 保存配置,部分路由器需要重启后生效。

如果没法在路由器上配置,也可以在单台本地设备上手动加路由:Windows用route add 10.8.0.0 mask 255.255.255.0 192.168.1.100,Linux用sudo ip route add 10.8.0.0/24 via 192.168.1.100,不过路由器配置是一劳永逸的方案。

第四步:验证连通性和测试服务

  1. 先确认树莓派已成功连入WG,在树莓派上执行ping 192.168.1.100(NAS本地IP),能通就说明树莓派能访问本地局域网了。
  2. 在本地电脑上执行ping 10.8.0.2(树莓派WG IP),能通就说明本地设备能访问WG子网了。
  3. 测试树莓派web界面:直接在本地浏览器输入http://10.8.0.2:端口号,正常打开就没问题。
  4. 测试NAS备份到CIFS:在NAS上添加共享文件夹,地址填//10.8.0.2/共享名,配置好权限就能自动备份了。

额外注意事项

  • 防火墙:NAS的防火墙要允许UDP 51820端口(WG默认端口),还要允许本地局域网和WG子网的转发流量;树莓派的防火墙要放开CIFS(445端口)和web界面的端口,避免被拦截。
  • 如果用的是linuxserver/wireguard这类现成Docker镜像,有些会自动处理IP转发和iptables规则,可以先看镜像文档,可能不需要手动加PostUp/PostDown,但核心逻辑是一致的。

备注:内容来源于stack exchange,提问作者Elio

火山引擎 最新活动