超级简单的 Wireguard 虚拟局域网组网方案

对于长期使用 NAS 的朋友来说,远程访问几乎是刚需。很多重要资料存在 NAS 里,难免有在外面需要访问的时候。因为类似的需求比较多,所以市面上的内网穿透方式也很多。比如 FRP、NPS 等内网穿透方案,甚至还有花生壳盒子这样的硬件解决方案。

上面的两种软件方案我都体验过,效果不错,但是还是略显繁琐。因为需要对每个访问的服务做端口映射,NAS 上的服务如果比较多,逐个做映射就很麻烦。最近看到了司波图大佬的发的 Wireguard 组网视频,哇哦!原来这么方便。

配置服务端

一行 Docker 搞定,记得打开服务器上的防火墙,允许 51820 的 udp 和 51821 的 tcp 端口。执行的时候注意是否需要 sudo 权限。

docker run -d \
  --name=wg-easy \
  -e WG_HOST=(服务器公网 IP) \
  -e PASSWORD=(WebUI 管理密码) \
  -e WG_DEFAULT_ADDRESS=10.0.8.x(虚拟网络网段)\
  -e WG_DEFAULT_DNS=223.5.5.5(DNS 解析) \
  -e WG_ALLOWED_IPS=10.0.8.0/24 (允许的网段)\
  -e WG_PERSISTENT_KEEPALIVE=25 \
  -v ~/.wg-easy:/etc/wireguard \
  -p 51820:51820/udp \
  -p 51821:51821/tcp \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --sysctl="net.ipv4.ip_forward=1" \
  --restart unless-stopped \
  weejewel/wg-easy

完成后就可以在 WebUI 页面里添加节点了。比如我需要将 Android,Unraid,iPad 都加进来,就都分别添加下就好。如果可以扫码就直接扫就好,不能扫码就下载 conf 配置导入即可。

安卓客户端

安卓直接下载安装 Wireguard 客户端,打开添加上面添加好的节点,可以扫码直接导入,之后就可以连上了!

Unraid 设置

我用的是 Unraid,下载 conf 配置,在设置里打开 VPN 管理器,点击右上角的 Import Tunnel,选择上面下载的 conf 文件,完成之后将 有效 开关打开就可以连上了。

测速

都连上虚拟网络之后,可以试试速度,我的 Unraid 上有 speedtest 测速服务,使用虚拟网络的 IP+端口 就可以访问。

Download 速度受限于 NAS 所在的家庭网络上传带宽,Upload 是受限于云服务器的带宽。总之这个速度也够日常使用了。主要是这个方法非常简单,配置维护使用成本都很低。