Wintun: Layer 3 TUN Driver for Windows


Wintun is a very simple and minimal TUN driver for the Windows kernel, which provides userspace programs with a simple network adapter for reading and writing packets. It is akin to Linux's /dev/net/tun and BSD's /dev/tun. Originally designed for use in WireGuard, Wintun is meant to be generally useful for a wide variety of layer 3 networking protocols and experiments. The driver is open source, so anybody can inspect and build it. Due to Microsoft's driver signing requirements, we provide precompiled and signed versions that may be distributed with your software. The goal of the project is to be as simple as possible, opting to do things in the most pure and straight-forward way provided by NDIS.

Usage & Installation

The documentation has extensive information on installing and integrating Wintun into your application, alongside the API reference. Integration is meant to be easy and intuitive, simply requiring the inclusion of a single wintun.dll file.


A small, cute, furry rabbit brings a window into a tunnel.

The source code is provided under the GPL 2.0 and is available via git:

$ git clone


Wintun is distributed as a simple ZIP archive containing signed DLLs for AMD64, X86, ARM64, and ARM32, along with the wintun.h header file for applications. Note that the below signed DLLs are the only supported way of distributing Wintun. The prebuilt signed DLLs are released under a more permissive license than GPL 2.0, included in the ZIP archive.

Contribution & Contact

You may email the WireGuard mailing list with patches sent via git-send-email and formatted with git-format-patch. To report security vulnerabilities, please email security at wireguard dot com.