Synology NAS WireGuard Setup Guide
Synology DSM does not include WireGuard natively. You need to install a community package matching your DSM version and CPU architecture, then load the kernel module manually. Tested on DS220+ / DSM 7.1.
Find the right WireGuard package for your NAS
Download the community WireGuard package from github.com/runfalk/synology-wireguard — pick the .spk matching your DSM version and CPU platform:
- DS220+, DS920+ (J4025/J4125) →
geminilake - DS218+, DS718+ (J3355/J3455) →
apollolake - DS1821+, DS1621+ (Ryzen V1500B) →
v1000 - DS923+, DS723+ (Ryzen R1600) →
r1000
Example for DS220+ on DSM 7.1: WireGuard-geminilake-1.0.20220627_DSM7.1.spk
Not sure of your platform? Check Control Panel → Info Center → CPU.
Install the package
In DSM go to Package Center → Manual Install and upload the .spk file. If it shows Repair instead of Install (from a previous attempt), click Repair — it reinstalls cleanly.
DSM may warn about an unsigned package — click Continue.
Load the WireGuard kernel module
The package does not load the module automatically. SSH into the NAS and run:
sudo insmod /volume1/@appstore/WireGuard/wireguard/wireguard.ko
Verify it loaded:
lsmod | grep wireguard
You should see wireguard listed. If not, find the module path with:
find / -name "wireguard.ko" 2>/dev/null
Create a tunnel in ProxyLink
Go to Devices → + Add → Router / LAN site, select Public Server / Device (not Home/LAN Router — the NAS connects directly), and complete setup to download your .conf file.
Prepare and copy the config
Enable SSH in Control Panel → Terminal & SNMP if not already on. Copy the config to the NAS:
scp proxylink.conf [email protected]:/tmp/wg0.conf
SSH in, then move it into place:
sudo mkdir -p /etc/wireguard sudo cp /tmp/wg0.conf /etc/wireguard/wg0.conf
Remove the Address line from the config — wg setconf does not accept it (it is set separately via ip addr):
sudo sed -i '/^Address/d' /etc/wireguard/wg0.conf
Bring up the tunnel
The wg binary is not in PATH on Synology — use the full path:
sudo ip link add dev wg0 type wireguard sudo /volume1/@appstore/WireGuard/wireguard/wg setconf wg0 /etc/wireguard/wg0.conf sudo ip addr add <your-vpn-ip>/24 dev wg0 sudo ip link set wg0 up
Replace <your-vpn-ip> with the Address from your config (e.g. 10.100.0.5).
Verify the tunnel is connected:
sudo /volume1/@appstore/WireGuard/wireguard/wg show
You should see a latest handshake a few seconds ago and bytes transferred.
Auto-start on boot
Go to Control Panel → Task Scheduler → Create → Triggered Task → Boot-up and add a script running as root:
sudo insmod /volume1/@appstore/WireGuard/wireguard/wireguard.ko sudo ip link add dev wg0 type wireguard sudo /volume1/@appstore/WireGuard/wireguard/wg setconf wg0 /etc/wireguard/wg0.conf sudo ip addr add <your-vpn-ip>/24 dev wg0 sudo ip link set wg0 up
Create a proxy link
In ProxyLink go to your device → + Add service. Set the target to your NAS's VPN IP and the port of whatever service you're running (e.g. a Docker container). Once the NAS connects you'll see it go Online in the tunnel view.
Good to know
What you get once the tunnel is up
- Browser RDP, VNC, and SSH — open a terminal or remote desktop to any device behind the tunnel straight from the ProxyLink dashboard. No client software, no open ports on your side.
- Proxy links — share an HTTPS URL that forwards to any internal web interface (NAS, NVR cameras, PBX admin panels, router UIs) with ProxyLink login in front of it.
- No public exposure — the device keeps zero open ports and needs no static IP. The tunnel is outbound-only WireGuard to EU-hosted infrastructure. Read more about agentless remote access and NIS2 compliance.
Ready to connect?
Create a free account and set up your first tunnel in minutes. Free during early access — no card required.