mirror of
https://github.com/angristan/wireguard-install.git
synced 2024-11-24 05:56:02 +03:00
5f82b76bc0
- cleaned some minor code - use IPv6 if IPv4 isn't available - add input validations, fixes #86 . - assign secondary DNS to primary DNS value if it's empty. Fixes #68 - use `$SERVER_WG_IPV4` and `$SERVER_WG_IPV6` when suggesting the client IP - save user DNS to `params` file and apply it to all clients, removing support for customizing DNS for individual clients. If this is a problem we can add again the code to allow customization but maybe use the sourced DNS as a suggestion for clients that need a different one - add shellcheck ignores, needed for IDE that have shellcheck support - escaped variables to `"${var}"` style - updated README to reflect changes - fixed the kernel mismatch issue on CentOS by updating the kernel https://github.com/angristan/wireguard-install/issues/95#issuecomment-653696198. Fedora might need this change too - Use `firewall-cmd` only if `firewalld` is running. Fixes #95 - Fix the client's subnet mask. Fixes #87 - Save the client configuration in the correct `$HOME`. Fixes #96 Co-authored-by: Chris Lewicki <chris@lewicki.dev> Co-authored-by: Stanislas <angristan@pm.me>
43 lines
1.7 KiB
Markdown
43 lines
1.7 KiB
Markdown
# WireGuard installer
|
|
|
|
**This project is a bash script that aims to setup a [WireGuard](https://www.wireguard.com/) 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](https://github.com/angristan/wireguard-install/issues) for ongoing development, bugs and planned features!
|
|
|
|
WireGuard does not fit your environment? Check out [openvpn-install](https://github.com/angristan/openvpn-install).
|
|
|
|
## Requirements
|
|
|
|
Supported distributions:
|
|
|
|
- Ubuntu
|
|
- Debian
|
|
- Fedora
|
|
- CentOS
|
|
- Arch Linux
|
|
|
|
I recommend these cheap cloud providers for your VPN server:
|
|
|
|
- [Vultr](https://goo.gl/Xyd1Sc): Worldwide locations, IPv6 support, starting at $3.50/month
|
|
- [PulseHeberg](https://goo.gl/76yqW5): France, unlimited bandwidth, starting at €3/month
|
|
- [Digital Ocean](https://goo.gl/qXrNLK): 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.
|
|
|
|
```bash
|
|
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!
|