WireGuard VPN installer for Linux servers
Go to file
randomshell 1923aa17e6
Add clientRevoke() and improve addClient() (#94)
Added `clientRevoke()` based on openvpn-install repo, fixes #4 

Some other changes were required for this to work:
- client names aren't random anymore
- client names are saved above the `[Peer]` block of the server configuration file to keep track of them
- checks added for existing IPv4, IPv6 and client name. I used `until` to ask the user again if this is the case to not make him loose its work if, for example, the client name and IPv4 inserted are unique but not the IPv6.
  - using `until` instead of `exit` isn't idempotent but it's more user friendly. This will be a future goal.
- default options should be safe to use so the suggestion for the client IP is automatically incremented. The subnet of `SERVER_WG_IPV` is hard-coded inside `CLIENT_WG_IPV` for obvious reasons
2020-08-03 16:24:43 +02:00
.github Bump ludeeus/action-shellcheck from 0.4.1 to 0.5.0 2020-07-29 06:23:41 +00:00
LICENSE Initial commit 2019-05-05 12:42:53 +02:00
README.md Refactor script (#92) 2020-07-31 14:59:20 +02:00
wireguard-install.sh Add clientRevoke() and improve addClient() (#94) 2020-08-03 16:24:43 +02:00

WireGuard installer

This project is a bash script that aims to setup a WireGuard VPN on a Linux server, as easily as possible!

WireGuard is a point-to-point VPN that can be used in different ways. Here, we mean a VPN as in: the client will forward all its traffic trough an encrypted tunnel to the server. The server will apply NAT to the client's traffic so it will appear as if the client is browsing the web with the server's IP.

The script supports both IPv4 and IPv6. Please check the issues for ongoing development, bugs and planned features!

WireGuard does not fit your environment? Check out openvpn-install.

Requirements

Supported distributions:

  • Ubuntu
  • Debian
  • Fedora
  • CentOS
  • Arch Linux

I recommend these cheap cloud providers for your VPN server:

  • Vultr: Worldwide locations, IPv6 support, starting at $3.50/month
  • PulseHeberg: France, unlimited bandwidth, starting at €3/month
  • Digital Ocean: Worldwide locations, IPv6 support, starting at $5/month

Usage

Download and execute the script. Answer the questions asked by the script and it will take care of the rest.

curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
./wireguard-install.sh

It will install WireGuard (kernel module and tools) on the server, configure it, create a systemd service and a client configuration file.

Make sure you choose different IPs for you clients.

Contributions are welcome!