DSVPN compiles to a single ~25 KB binary with no external runtime dependencies. All you need is a C compiler and standard POSIX headers — both of which are present on any typical development machine. The build system auto-detects compiler flags such asDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/jedisct1/dsvpn/llms.txt
Use this file to discover all available pages before exploring further.
-march=native and -O3, so a plain make is enough to produce an optimized binary for your platform.
- Linux
- macOS
- BSD
Clone the repository and run This produces a stripped This places the binary at
make:dsvpn binary in the current directory. To install it system-wide, run:/usr/local/sbin/dsvpn.Linux kernel 3.17 or newer is required. Earlier kernels lack the TUN interface features that DSVPN depends on.
Raspberry Pi
On Raspberry Pi 3 and 4, pass theOPTFLAGS variable to enable ARM NEON SIMD optimizations, which noticeably improve cryptographic throughput:
make build and produces the same single dsvpn binary.
Build with Zig
If you have Zig installed, you can use it as an alternative build system. Zig performs cross-compilation and produces a stripped binary optimized for small size:./dsvpn in all commands shown throughout the documentation.
System Installation
The Makefile providesinstall and uninstall targets for placing DSVPN into the standard system binary path:
/usr/local. Override it with the PREFIX variable if you need a different location:
/opt/dsvpn/sbin/dsvpn.
Running DSVPN always requires root privileges (or
CAP_NET_ADMIN on Linux). It needs them to create a TUN interface and modify the system routing table. Use sudo ./dsvpn or run as root.