---
title: Main page
layout: plain
navbar:
link: Main
icon: home
links:
- {rel: stylesheet, href: assets/css/pre_overlay.css}
scripts:
# ipaddr.js is buggy: https://github.com/whitequark/ipaddr.js/issues/160.
# TODO: revert back to using ipaddr.js if it's fixed?
#- {src: 'https://cdn.jsdelivr.net/npm/ipaddr.js@2.0.1/ipaddr.min.js'}
# This is the "browserified" replacement, ip-address. This bundling procedure
# fucking sucks, but it's the best I've got for now.
- {src: assets/js/bundle.js}
- {src: 'https://cdn.jsdelivr.net/npm/qrious@4.0.2/dist/qrious.min.js'}
- {src: assets/js/main.js}
params:
- id: server
desc: Server
items:
- id: server_public
name: Public key
placeholder: "Server's public key"
help: |
Query using wg show wg0 public-key
example: iNqGDQ2tltbSN4s3Fpb/7PRc2OSwR3/bPjOrf8V/SmA=
- id: server_endpoint
name: Endpoint
placeholder: "Server's endpoint in the HOST:PORT format"
help: |
Server's public IP address or a hostname.
Query the port using wg show wg0 listen-port
example: 123.123.123.123:123
- id: preshared
name: Preshared key
placeholder: Preshared key (shared between server and client)
help: |
Generate using wg genpsk
example: Moshdr8RNfYUWG/0MVOlglzlze3beATD6YumDwCZf5E=
- id: client
desc: Client
items:
- id: client_public
name: Public key
placeholder: "Client's public key"
help: |
Generate both keys using wg genkey | tee private.key | wg pubkey > public.key
example: hvfo/MgizTRbrktfx3k2Q0Ib0mx0P2N6LRZEYWqkpXc=
- id: client_private
name: Private key
placeholder: "Client's private key"
help: |
Unless generated in one go with the public key, generate one using wg genkey
example: qKgmDq8HWaU432qJhEa2Q6pE52P55xBHNOgzB0roP3A=
- id: client_ipv4
name: IPv4
placeholder: Address and netmask, like 192.168.123.123/24
help: |
IPv4 address to assign to the client and its netmask in the CIDR format.
example: 192.168.123.123/24
- id: client_ipv6
name: IPv6
placeholder: Address and netmask, like fd::192.168.123.123/48
help: |
IPv6 address to assign to the client and its netmask in the CIDR format.
example: fd01:2345:6789::192.168.123.123/48
- id: keepalive
name: Keepalive
default: 25
placeholder: Seconds between keepalive packets, typically 25
help: |
Time to wait between sending keepalive packets, seconds.
example: 25
advanced: true
- id: tunnel_everything
name: Tunnel all traffic
type: checkbox
default: false
advanced: true
- id: dns_ipv4
name: DNS (IPv4)
default: 1.1.1.1,1.0.0.1
placeholder: IPv4 addresses of DNS servers
help: |
Comma-separated list of IPv4 addresses to use as DNS servers.
example: 1.1.1.1,1.0.0.1
advanced: true
- id: dns_ipv6
name: DNS (IPv6)
default: 2606:4700:4700::1111,2606:4700:4700::1001
placeholder: IPv6 addresses of DNS servers
help: |
Comma-separated list of IPv6 addresses to use as DNS servers.
example: 2606:4700:4700::1111,2606:4700:4700::1001
advanced: true
---
This page assumes that you have a WireGuard server
configured on interface wg0
.
You can then generate the new client's keys, feed them to this page and it will
show configuration files that can be used by the client.
Take a look at an example configuration to learn more.