WireGuard for Windows
If you've come here looking to simply run WireGuard for Windows, you may download it here.
This is a fully-featured WireGuard client for Windows that uses Wintun.
Windows 10 64-bit or Windows Server 2019, and Git for Windows is required. The build script will take care of downloading, verifying, and extracting the right versions of the various dependencies:
C:\Projects> git clone https://git.zx2c4.com/wireguard-windows C:\Projects> cd wireguard-windows C:\Projects\wireguard-windows> build
After you've built the application, run
x86\wireguard.exe to install the manager service and show the UI.
Since WireGuard requires the Wintun driver to be installed, and this generally requires a valid Microsoft signature, you may benefit from first installing a release of WireGuard for Windows from the official wireguard.com builds, which bundles a Microsoft-signed Wintun, and then subsequently run your own wireguard.exe. Alternatively, you can craft your own installer using the
The installer build script will take care of downloading, verifying, and extracting the right versions of the various dependencies:
C:\Projects\wireguard-windows> cd installer C:\Projects\wireguard-windows\installer> build
Add a file called
sign.bat in the root of this repository with these contents, or similar:
set SigningCertificate=DF98E075A012ED8C86FBCF14854B8F9555CB3D45 set TimestampServer=http://timestamp.digicert.com
After, run the above
build commands as usual, from a shell that has
signtool.exe in its
PATH, such as the Visual Studio 2017 command prompt.
You must first have Go ≥1.12, Mingw, and ImageMagick installed.
$ sudo apt install mingw-w64 golang-go imagemagick $ git clone https://git.zx2c4.com/wireguard-windows $ cd wireguard-windows $ make
You can deploy the 64-bit build to an SSH host specified by the
DEPLOYMENT_HOST environment variable (default "winvm") to the remote directory specified by the
DEPLOYMENT_PATH environment variable (default "Desktop") by using the
$ make deploy
wg(8) Support for Windows
The command line utility
wg(8) works well on Windows. Being a Unix-centric project, it compiles with a Makefile and MingW:
$ git clone https://git.zx2c4.com/WireGuard $ cd WireGuard/src/tools $ PLATFORM=windows make $ stat wg.exe
It interacts with WireGuard instances run by the main WireGuard for Windows program.
When building on Windows, the aforementioned
build.bat script takes care of building this.