# WireGuard

#### WireGuard Server

- [wireguard-install](https://github.com/Nyr/wireguard-install)

#### WireGuard Client

- YT: [WireGuard - How to Install and Configure WireGuard VPN Client on Ubuntu | Debian | LinuxMint - YouTube](https://www.youtube.com/watch?v=RT8drPYW4qs)
- [wireguird](https://github.com/UnnoTed/wireguird) - wireguard gtk gui for linux
- [How to configure WireGuard VPN client with NetworkManager GUI](https://www.xmodulo.com/wireguard-vpn-network-manager-gui.html)
- [How to set up Wireguard VPN under Linux - Tutorial - YouTube](https://www.youtube.com/watch?v=-4zcUmY05YA)

##### wg-quick

Installation

```bash
# Ubuntu/Debian
sudo apt install wireguard

# Fedora
sudo dnf -y install wireguard-tools
```

Generate the key pairs

```bash
sudo -i
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
```

Configure the WireGuard interface on Peer A

`/etc/wireguard/wg0.conf` :

```bash
cat << EOF > /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.2/32
PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DNS = 8.8.8.8, 4.4.4.4

[Peer]
PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
AllowedIPs = 0.0.0.0/0
Endpoint = the.wireguard.server:51820
EOF
```

Up &amp; Down the wg link

```bash
sudo wg-quick up wg0
sudo wg
sudo journalctl -fu wg-quick@wg0

sudo wg-quick down wg0
```

##### nmcli

```bash
# Import the config file
CONF_FILE="wg0.conf"
nmcli connection import type wireguard file "$CONF_FILE"

# Show the profiles
nmcli
nmcli conn show   # List all profiles
nmcli conn show <name>  # Display the details for specified profile

# Delete the profile
nmcli connection delete wg0

# Modify the profile my-wg0
nmcli connection modify my-wg0 \
    autoconnect yes \
    ipv4.method manual \
    ipv4.addresses 192.168.7.5/24 \
    wireguard.listen-port 50000 \
    ...

# Active/Inactive the interface
nmcli connection up my-wg0
nmcli connection down my-wg0
```

#### Algo VPN

- [Algo VPN](https://github.com/trailofbits/algo) is a set of Ansible scripts that simplify the setup of a personal WireGuard and IPsec VPN.

#### NetBird

- [NetBird](https://netbird.io/) combines a configuration-free peer-to-peer private network and a centralized access control system in a single open-source platform
- \[Video\] [Netbird - an Open Source, Self Hosted Wireguard based VPN system. Server GUI and client setup ease](https://www.youtube.com/watch?v=_-vfSgqmOUI)
- [Proxmox VE for Beginners Guide with NetBird LXC](https://netbird.io/knowledge-hub/proxmox-getting-started-guide)

#### PiVPN

[PiVPN](https://www.pivpn.io/) is a lightweight, open-source project designed to simplify setting up a VPN server on a Raspberry Pi or any Debian-based system.

It supports WireGuard and OpenVPN, allowing you to create a secure, private tunnel to your home network or VPS.

- [Self-host Your Own VPN Using PiVPN](https://linuxhandbook.com/self-host-pivpn/)

#### wg-easy

[wg-easy](https://wg-easy.github.io/wg-easy/edge/) is the easiest way to run WireGuard VPN + Web-based Admin UI.

- GitHub: [https://github.com/wg-easy/wg-easy](https://github.com/wg-easy/wg-easy)

#### WGDashboard

[WGDashboard](https://wgdashboard.dev/) is a simple and easy-to-use dashboard to manage your WireGuard &amp; AmneziaWG VPN Server(s).

#### WireGuard-UI

A web user interface to manage your WireGuard setup.

- GitHub: [https://github.com/ngoduykhanh/wireguard-ui](https://github.com/ngoduykhanh/wireguard-ui)
- [How to Install WireGuard VPN + Web UI on Ubuntu](https://www.tecmint.com/setup-wireguard-vpn-server-web-ui-ubuntu/)