This repository contains scripts that make it easy to configure WireGuard on VPS.
Medium article: How to deploy WireGuard node on a DigitalOcean's droplet
wget https://raw.githubusercontent.com/drew2a/wireguard/master/wg-ubuntu-server-up.sh
chmod +x ./wg-ubuntu-server-up.sh
sudo ./wg-ubuntu-server-up.shwget https://raw.githubusercontent.com/drew2a/wireguard/master/wg-debian-server-up.sh
chmod +x ./wg-debian-server-up.sh
sudo ./wg-debian-server-up.shTo get a full instruction, please follow to the article above.
- Ubuntu 18.04
 - Ubuntu 20.04
 - Ubuntu 22.04
 - Debian 9
 - Debian 10
 
This script:
- Installs all necessary software on an empty Ubuntu DigitalOcean droplet (it should also work with most modern Ubuntu images)
 - Configures IPv4 forwarding and iptables rules
 - Sets up unbound DNS resolver
 - Creates a server and clients configurations
 - Installs qrencode
 - Runs WireGuard
 
wg-ubuntu-server-up.sh [--clients=<clients_count>] [--no-reboot] [--no-unbound]Options:
--clients=<clients_count>how many client's configs will be created--no-unbounddisables Unbound server installation (1.1.1.1 will be used as a default DNS for client's configs)--no-rebootdisables rebooting at the end of the script execution
./wg-ubuntu-server-up.sh./wg-ubuntu-server-up.sh --clients=10This script works the same way and with the same options, that
wg-ubuntu-server-up.sh do.
This script generate server and clients configs for WireGuard.
If the public IP is not defined, then the public IP of the machine from which the script is run is used. If the number of clients is not defined, then used 10 clients.
Install WireGuard if it's not installed.
./wg-genconf.sh [<number_of_clients> [<dns_ip> [<server_public_ip>]]]Where:
number_of_clientshow many client's configs will be generateddns_ipthe script should use this IP as a DNS addressserver_public_ipthe script should use this IP as a server address
./wg-genconf.sh./wg-genconf.sh 10./wg-genconf.sh 10 1.1.1.1./wg-genconf.sh 10 1.1.1.1 157.245.73.253