Setting Up WireGuard
WireGuard® is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner.
🐣 Installing WireGuard
sudo apt install linux-headers-generic
sudo add-apt-repository ppa:wireguard/wireguard -y
sudo apt-get update
sudo apt-get install wireguard -y🗝️ Setting Up Public/Private Key Pairs
On each node, to generate a public/private key type the following commands:
sudo su
cd /etc/wireguard
umask 077
wg genkey | tee wireguard-privatekey | wg pubkey > wireguard-publickey🤖 Configuring WireGuard
Create a wg0.conf configuration file in /etc/wireguard directory.
Update your Private and Public Keys accordingly.
Change the Endpoint to your remote node public IP or DNS address.
Two Node Setup ( i.e. 1 block producer, 1 relay node)
Triple Node Setup ( i.e. 1 block producer, 2 relay nodes)
🧱 Configuring Your Firewall / Port Forwarding
You must allow traffic on port 51820 UDP to your node.
To configure your firewall / port forwarding, type:
🔗 Setting Up Autostart with systemd
Add the service to systemd.
Start wireguard.
Check the status.
✅ Verifying the Connection
Check the status of the interfaces by running wg
Verify ping works between nodes.
Cardano-specific Configuration
Update and/or review your topology.json file(s) and/or relay-topology_pull.sh script to ensure the "addr" matches this new tunneled IP address, and not the usual public node IP address.
Dual node setup
Example: topology.json on blockproducer { "addr": "10.0.0.2", "port": 6000, "valency": 1 },
topology.json on **relaynode1 ** { "addr": "10.0.0.1", "port": 6000, "valency": 1 },
Triple node setup
Example: topology.json on blockproducer { "addr": "10.0.0.2", "port": 6000, "valency": 1 },
{ "addr": "10.0.0.3", "port": 6000, "valency": 1 },
topology.json on **relaynode1 ** { "addr": "10.0.0.1", "port": 6000, "valency": 1 },
{ "addr": "10.0.0.3", "port": 6000, "valency": 1 },
topology.json on relaynode2 { "addr": "10.0.0.1", "port": 6000, "valency": 1 },
{ "addr": "10.0.0.2", "port": 6000, "valency": 1 },
ETH Validator Specific Configuration
Update and/or review your validator's configuration and ensure it connects to the beacon-chain's new tunneled IP address, and not the usual public node IP address.
In this example, the beacon-chain is the remote node with IP address 10.0.0.2
To access Grafana from your local machine, enter into the browser http://10.0.0.2:3000
Wireguard setup is complete.
🛑 Stopping and Disabling WireGuard
To stop and disable WireGuard, type: