Open-source VPN client that deploys and connects to your own self-hosted VPN server over SSH, across desktop and mobile.
hwdsl2/wireguard-install
A shell script that sets up a WireGuard VPN server on Linux in minutes and manages its clients.
Open-source alternative to:NordVPN
ExpressVPN
- Stars
- 3,225
- Forks
- 510
- Open issues
- 0
- Last commit
- 6 days ago
What is it?
This project is an installer script that deploys a WireGuard VPN server on a cloud server, VPS or dedicated Linux machine. It can run fully automatically with default settings, or interactively so you can choose the server address, UDP port, DNS servers and the first client's name.
After installation, the same script handles ongoing management: adding and removing clients, listing existing clients, and showing a QR code for mobile setup. It also generates VPN profiles for Windows, macOS, iOS and Android devices, and applies sysctl tuning intended to improve VPN performance. Dual-stack IPv4 and IPv6 is supported for clients.
Supported distributions include Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS, Fedora, openSUSE and Raspberry Pi OS. The script is MIT licensed and is a derivative of Nyr/wireguard-install with additional options and compatibility changes.
Key features
- 01Fully automated WireGuard server setup with default options
- 02Interactive install for custom server address, port and DNS
- 03Add, list and remove VPN clients from the command line
- 04Generates QR codes and profiles for Windows, macOS, iOS and Android
- 05Dual-stack IPv4 and IPv6 support for clients
Use cases
- Setting up a personal VPN on a cloud VPS without manually editing WireGuard config files
- Giving family members or colleagues individual VPN profiles with QR codes for phones
- Running a small self-hosted VPN on a Raspberry Pi
Quick start
- 1
Download the setup script
wget -O wireguard.sh https://get.vpnsetup.net/wg - 2
Auto install WireGuard with default options
sudo bash wireguard.sh --auto
Things to know
- Requires a Linux server; supported distributions are listed in the README.
In collections
Topics
FAQ
- What is wireguard-install?
- A shell script that sets up a WireGuard VPN server on Linux in minutes and manages its clients. This project is an installer script that deploys a WireGuard VPN server on a cloud server, VPS or dedicated Linux machine. It can run fully automatically with default settings, or interactively so you can choose the server address, UDP port, DNS servers and the first client's name.
- Is wireguard-install free to use? What license does it have?
- wireguard-install is open source under the MIT license. Check the license terms before using it in commercial products.
- Is wireguard-install still maintained?
- Actively maintained. The last commit to wireguard-install was on Nov 2, 2026.
- What can I use wireguard-install for?
- Setting up a personal VPN on a cloud VPS without manually editing WireGuard config files Giving family members or colleagues individual VPN profiles with QR codes for phones Running a small self-hosted VPN on a Raspberry Pi
- How do I install wireguard-install?
- Download the setup script: wget -O wireguard.sh https://get.vpnsetup.net/wg Auto install WireGuard with default options: sudo bash wireguard.sh --auto
- Where can I get wireguard-install?
- The source code and installation instructions are on GitHub: https://github.com/hwdsl2/wireguard-install
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Shell script that installs and manages an OpenVPN road warrior server on Ubuntu, Debian and RHEL-family distros.
Ansible scripts that deploy a personal WireGuard and IPsec VPN server to your own cloud account in minutes.
Android app combining a DNS-over-HTTPS/TLS/DNSCrypt client, a per-app firewall and network monitor, and a split-tunnel WireGuard/SOCKS5 proxifier, without requiring root.
Open source, full-featured mail server solution for mainstream Linux and BSD distributions.
Open-source web control panel for deploying and managing Xray-core proxy and VPN servers with multi-protocol, multi-user support.