群晖Docker部署WireGuard异地组网

WireGuard介绍

  • WireGuard是一个FAST(速度快)、MODERN(流行)、SECURE (安全)的VPN TUNNEL(VPN隧道)。

  • WireGuard是Jason A. Donenfeld开发的开源VPN协议。目前支持Linux, macOS, Android以及OpenWrt。iOS和Windows官方客户端还在开发,但第三方Windows客户端已经出现。WireGuard被视为下一代VPN协议,用来替代OpenVPN,IPSec等VPN协议。

  • WireGuard协议作为Linux内核模块运行,所以效率极高。使用了最先进的加密技术(利用Curve25519进行密钥交换,ChaCha20和Poly1305用于数据认证,BLAKE2用于散列),安全性毋庸置疑。WireGuard是为嵌入式设备开发的,支持IP地址漫游,也就是网络断开再连,对它不会有影响。WireGuard使用UDP协议传输数据,在不使用的情况下默认不会传输任何 UDP 数据包,所以比常规VPN省电很多,可以像SS一样一直挂着使用。

  • 由于WireGuard是UDP传输,一些地区运营商会对UDP进行干预,这可能会导致中断和其他问题。暂时不推荐将其作为每日的FQ手段,但它是在TCP被阻塞的VPS上的一种解决方案。

  • 官方网站:https://www.wireguard.com/

  • GitHub地址:https://github.com/linuxserver/docker-wireguard

WireGuard安装要求

  • 如果在外网的情况下使用wireguard,安装之前需要满足以下条件:

  • 需要有公网的ip地址(这些地址可以直接在腾讯云、阿里云等厂商购买)

  • 如果Linux内核版本<5.6,可能需要首先更新内核(本文不介绍内核升级教程)

  • 不同的系统中,内核,内核源码包,内核头文件必须存在且这三者版本要一致(例如:Red Hat、CentOS、Fedora 等系统的内核源码包,内核头文件包名分别为 kernel、kernel-devel、kernel-headers;Debian、Ubuntu 等系统的内核源码包,内核头文件包名分别为 kernel、linux-headers)。

  • 目前已可以用的群晖型号:DS918+、DS220+、其他型号待补充。

安装教程

安装WireGuard套件

  1. 在群晖套件中心添加套件源

    #我不是矿神
    https://spk7.imnks.com/

    image-dfpq.png

  2. 搜索并安装WireGuard套件

为套件添加权限

  1. 打开群晖的SSH功能,使用终端软件进行连接,并切换到root状态下。

  2. 执行下面的命令为WireGuard套件赋予权限

    sudo sed -i 's/package/root/g' /var/packages/WireGuard/conf/privilege

创建所需文件夹

  1. 在根目录etc文件夹内创建wireguard文件夹

    root@NAS:/# mkdir /etc/wireguard/    #在etc文件夹内创建wireguard文件夹
    root@NAS:/# cd /etc/wireguard    #进入wireguard文件夹
    root@NAS:/etc/wireguard# ls
    

生成WireGuard服务私钥和公钥

  1. 依次执行下面的三条命令