wireguard-install README

The project's README from github.com/angristan/wireguard-install. As one markdown file: README.md.

WireGuard installer

Lint Say Thanks!

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 through 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! You might also want to check the discussions for help.

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

Requirements

Supported distributions:

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.

Run the script again to add or remove clients!

Providers

I recommend these cheap cloud providers for your VPN server:

Contributing

Contributions are welcome! Here's how you can help:

Discuss changes

Please open an issue before submitting a PR if you want to discuss a change, especially if it's a big one.

Code formatting

We use shellcheck and shfmt to enforce bash styling guidelines and good practices. They are executed for each commit / PR with GitHub Actions, so you can check the configuration here.

Say thanks

You can say thanks if you want!

Credits & Licence

This project is under the MIT Licence

Star History

Star History Chart

wireguard-install (angristan/wireguard-install)

wireguard-vpn
Searching Database…

What is this?A bash script that sets up a WireGuard VPN on a Linux server, forwarding all your traffic through an encrypted tunnel and NATing it so you appear to browse with the server's IP.
Is this a server app or a client app?It's a server-side installer script: it configures the VPN server, and separately generates a client configuration file you import into any WireGuard client app.
How do I get it running?Download and execute the script, then answer the setup questions it asks; running it again lets you add or remove clients.
What kind of server do I need for this?Just a supported Linux distro: AlmaLinux 8+, Alpine, Arch, CentOS Stream 8+, Debian 10+, Fedora 32+, Oracle Linux, Rocky Linux 8+, or Ubuntu 18.04+.
What if WireGuard doesn't fit my setup?The author points to a sister project, openvpn-install, for cases where WireGuard isn't the right fit.
Do I need to rent a VPS for this?Yes, you run it on your own Linux server; the README recommends cheap VPS providers like Vultr, Hetzner, or Digital Ocean starting around $4-5/month.
Does it support IPv6 as well as IPv4?Yes, the script supports both IPv4 and IPv6.
Does my traffic actually get hidden behind the server's IP?Yes, the server applies NAT to client traffic, so the client appears to browse with the server's IP.
Can I manage multiple clients with one server?Yes, re-running the script lets you add or remove client configurations at any time.
Is there a GUI for this?No, it's a command-line bash script; all setup happens by answering interactive prompts in the terminal.
Does it handle the systemd service setup for me?Yes, the script creates and manages a systemd service for WireGuard automatically.
Creator
angristan
Size
0.2 MB
Stars
11.4K
Updated
CommitDec 25
Age
7y
Commits · 90 Days