Overview

Welcome to the documentation for the wireguard-install script, a comprehensive bash script designed to set up a WireGuard VPN on a Linux server with maximum ease and efficiency.

This project automates the entire process of installing and configuring a secure WireGuard VPN. It's designed for developers and system administrators who need a quick and reliable way to deploy a point-to-point VPN. The configured VPN will forward all client traffic through an encrypted tunnel to the server, with the server applying NAT so that the client's traffic appears to originate from the server's IP address.

Key Features

  • Automated Setup: The script handles package installation, server configuration, firewall rules, and system service setup automatically.
  • Interactive & User-Friendly: An interactive prompt guides you through the configuration process with sensible defaults.
  • Broad Linux Support: Works on a wide range of modern Linux distributions, including Debian, Ubuntu, CentOS, Fedora, Arch Linux, and more.
  • Dual Stack Support: Fully supports both IPv4 and IPv6 for server and client configurations.
  • Client Management: After installation, the script can be re-run to easily add new clients, list existing clients, or revoke client access.
  • Easy Client Onboarding: Generates client configuration files and provides a QR code for quick setup on mobile devices.
  • Firewall Integration: Automatically configures iptables or firewalld to allow WireGuard traffic and enable NAT.

If WireGuard doesn't fit your needs, you might also consider its sister project, openvpn-install.