目前已不完全适用,请参考教程1和教程2
前言
群晖DSM7无Wireguard套件,相对来说系统闭源,我们采用编译的方式安装Wireguard。
注意:使用此方案穿透回内网,请务必确定,内网机器具有公网ipv4或公网ipv6,否则请直接参考ZeroTier&Tailscale无公网IP实现p2p穿透教程。无公网的机器无法直接使用Wireguard,请勿折腾。
编译Wireguard Github
找一台linux机器,运行下面命令编译Wireguard
运行以下命令来创建 docker 映像:
git clone https://github.com/runfalk/synology-wireguard.git cd synology-wireguard/ sudo docker build -t synobuild .
使用以下命令为任何平台和 DSM 版本进行构建,注意:修改
PACKAGE_ARCH
以及DSM_VER
为自己系统架构和DSM版本sudo docker run --rm --privileged --env PACKAGE_ARCH=<arch> --env DSM_VER=<dsm-ver> -v $(pwd)/artifacts:/result_spk synobuild
在DSM系统信息中查看架构版本号。点击这里查看你的系统架构版本号。请注意,PACKAGE_ARCH必须为小写。例如下面:
sudo docker run --rm --privileged --env PACKAGE_ARCH=v1000 --env DSM_VER=7.0 -v $(pwd)/artifacts:/result_spk synobuild
编译成功后在artifacts目录下找到
.spk
文件后上传到DSM插件中心安装并启动
注意:请勿在插件中心点启动,会失败无法使用,请使用下面命令通过ssh登录后启动插件#切换为root用户 sudo -i #启动插件 sudo /var/packages/WireGuard/scripts/start
配置Wireguard&多用户
创建公钥私钥
预共享密钥
mkdir wg # 创建目录存放公钥私钥 cd wg # 进入文件夹 umask 077 # 配置创建密钥的权限 wg genpsk > sharekey # 创建预共享密钥 cat sharekey # 获取密钥复制保存
服务端公钥私钥
wg genkey | tee server_privatekey | wg pubkey > server_publickey # 创建服务端公钥和私钥 cat server_privatekey # 获取服务端私钥复制保存 cat server_publickey # 获取服务端公钥复制保存
客户端公钥私钥
重复此操作创建每个客户端的公钥和私钥,请注意修改以下命令中的文件名,本文以 macOS 为例:
wg genkey | tee macos_privatekey | wg pubkey > macos_publickey # 创建 macOS 客户端公钥和私钥 cat macos_privatekey # 获取 macOS 客户端私钥复制保存 cat macos_publickey # 获取 macOS 客户端公钥复制保存
创建wg0文件[在群晖机器上]
创建
/etc/wireguard/wg0.conf
,按需求写入下面文件。PostUp
和PostDown
中eth0
需要修改为群晖网卡名称,请使用ifconfig
查询[Interface]
中Address
不可以与现有ip段冲突ListenPort
为监听端口,不可冲突# 服务端配置 [Interface] Address = 10.0.0.1/16 PrivateKey = <server_privatekey> ListenPort = 12345 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <macos_publickey>
AllowedIPs = 10.0.0.2/32
PresharedKey =
PersistentKeepalive = 25
[Peer]
PublicKey = <win_publickey>
AllowedIPs = 10.0.0.3/32
PresharedKey =
PersistentKeepalive = 25
创建客户端文件(以win客户端举例)
[Interface]
PrivateKey = <macos_privatekey>
Address = 10.0.0.2/24
DNS = 114.114.114.114, 240e:4c:4008::1
[Peer]
PublicKey = <server_pubilckey>
PresharedKey =
AllowedIPs = 0.0.0.0/0
Endpoint = [群晖公网ip]:ListenPort
PersistentKeepalive = 25
启动WG以及其他相关操作
很多人搞不清WG的公钥和私钥
只需要记住:公钥是给对方的,私钥留给自己!!
# 启动WG
wg-quick up wg0
# 关闭WG
wg-quick down wg0
# 开机自启WG
wg-autostart enable wg0
参考文档
Synology DSM7 Wireguard 安装小记
OpenWRT 配置 WireGuard 服务端及客户端配置教程
CentOS 7 安装 WireGuard 详细教程