|
3 years ago | |
---|---|---|
conf | 3 years ago | |
elevate | 3 years ago | |
embeddable-dll-service | 3 years ago | |
installer | 3 years ago | |
l18n | 3 years ago | |
locales | 3 years ago | |
manager | 3 years ago | |
ringlogger | 3 years ago | |
services | 3 years ago | |
tunnel | 3 years ago | |
ui | 3 years ago | |
updater | 3 years ago | |
version | 3 years ago | |
.gitignore | 3 years ago | |
COPYING | 4 years ago | |
Makefile | 3 years ago | |
README.md | 3 years ago | |
attacksurface.md | 3 years ago | |
build.bat | 3 years ago | |
go.mod | 3 years ago | |
go.mod.master | 3 years ago | |
go.sum | 3 years ago | |
gotext.go | 3 years ago | |
main.go | 3 years ago | |
manifest.xml | 3 years ago | |
quickinstall.bat | 3 years ago | |
resources.rc | 3 years ago | |
zgotext.go | 3 years ago |
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 amd64\wireguard.exe
or x86\wireguard.exe
to install the manager service and show the UI.
C:\Projects\wireguard-windows> amd64\wireguard.exe
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 quickinstall.bat
script.
To translate WireGuard UI to your language:
Upgrade resources.rc
accordingly. Follow the pattern.
Add your language ID to the //go:generate ... -lang=en,<langID>...
line in gotext.go
.
Configure and run build
to prepare initial locales\<langID>\messages.gotext.json
file:
C:\Projects\wireguard-windows> set GoGenerate=yes
C:\Projects\wireguard-windows> build
C:\Projects\wireguard-windows> copy locales\<langID>\out.gotext.json locales\<langID>\messages.gotext.json
Translate locales\<langID>\messages.gotext.json
. See other language message files how to translate messages and how to tackle plural.
Run build
from the step 3 again, and test.
Repeat from step 4.
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 deploy
target:
$ make deploy
wg(8)
Support for WindowsThe 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-tools
$ PLATFORM=windows make -C wireguard-tools/src
$ stat wireguard-tools/src/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.