Bubble client for Windows. Fork of https://git.zx2c4.com/wireguard-windows
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Jason A. Donenfeld 3ca5d24273 firewall: remove unused ExemptBuiltinAdministrators пре 4 година
conf l18n: disambiguate enumeration and unit concatenation separators пре 4 година
elevate updater: allow updating from the command line пре 4 година
embeddable-dll-service embeddable-dll-service: acquire pointer reference before atomic increment пре 4 година
installer build: bump wintun to 0.8.1 пре 4 година
l18n l18n: disambiguate enumeration and unit concatenation separators пре 4 година
locales locales: add Italian translation пре 4 година
manager updater: allow updating from the command line пре 4 година
ringlogger ringlogger: simplify пре 4 година
services tunnel: device->interface пре 4 година
tunnel firewall: remove unused ExemptBuiltinAdministrators пре 4 година
ui syntax: insist on 256-bit keys, not 257-bit or 258-bit пре 4 година
updater updater: allow updating from the command line пре 4 година
version version: bump пре 4 година
.gitignore l18n: add localization support пре 4 година
COPYING Initial scaffolding пре 5 година
Makefile l18n: add stub for cross platform пре 4 година
README.md l18n: add stub for cross platform пре 4 година
attacksurface.md attacksurface: update to wintun changes пре 4 година
build.bat go: bump пре 4 година
go.mod mod: bump пре 4 година
go.mod.master mod: use x/text master branch пре 4 година
go.sum mod: bump пре 4 година
gotext.go locales: add Italian translation пре 4 година
main.go updater: allow updating from the command line пре 4 година
manifest.xml installer: unify XML empty-element spacing пре 4 година
quickinstall.bat quickinstall: deal with paths better пре 4 година
resources.rc locales: add Italian translation пре 4 година
zgotext.go locales: add Italian translation пре 4 година

README.md

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.

Building

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

Running

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.

Optional: Localizing

To translate WireGuard UI to your language:

  1. Upgrade resources.rc accordingly. Follow the pattern.

  2. Add your language ID to the //go:generate ... -lang=en,<langID>... line in gotext.go.

  3. 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
    
  4. Translate locales\<langID>\messages.gotext.json. See other language message files how to translate messages and how to tackle plural.

  5. Run build from the step 3 again, and test.

  6. Repeat from step 4.

Optional: Creating the Installer

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

Optional: Signing Binaries

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.

Alternative: Building from Linux

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 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-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.