WireGuard wg0 Not Starting After Reboot on Ubuntu

Gerard Chen Avatar



If you’re using WireGuard on Ubuntu and notice that your wg0 interface
does not start automatically after reboot, you’re not alone. This is a common issue—and fortunately, an easy one to fix.



🚨 Problem



After rebooting your Ubuntu system, the WireGuard interface wg0 is down,
even though it worked perfectly before restarting.



🤔 Why This Happens



When you manually start WireGuard using:



sudo wg-quick up wg0



it only activates the VPN for the current session. It does not persist across reboots
because the service has not been enabled in systemd.



✅ Solution: Enable WireGuard Auto-Start



To ensure WireGuard starts automatically when your system boots, run:



sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0



This registers WireGuard as a system service and ensures wg0 starts at boot.



🔍 Verify It’s Working


sudo systemctl status wg-quick@wg0
ip a show wg0



If everything is configured correctly, you should see the interface active.



⚠️ Common Issues & Fixes



1. Incorrect Config File Location



Ensure your configuration file exists at:


/etc/wireguard/wg0.conf


2. File Permissions


sudo chmod 600 /etc/wireguard/wg0.conf


3. Network Not Ready at Boot



Sometimes WireGuard starts before the network is fully initialized.
Fix this by delaying startup:



sudo systemctl edit wg-quick@wg0


Add the following:



[Unit]
After=network-online.target
Wants=network-online.target


sudo systemctl daemon-reexec


4. DNS Issues



If you’re using the DNS= option in your config, ensure your system supports it
(e.g., systemd-resolved or resolvconf).



📊 Diagram: How WireGuard Startup Works




┌───────────────┐
│ System Boot │
└──────┬────────┘


┌──────────────────────┐
│ systemd initializes │
└──────┬───────────────┘


┌──────────────────────────────┐
│ wg-quick@wg0.service enabled?│
└──────┬───────────────┬───────┘
│ YES │ NO
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Start wg0 VPN │ │ wg0 stays OFF│
└───────────────┘ └──────────────┘


📌 Summary



  • Problem: wg0 not starting after reboot

  • Cause: Service not enabled

  • Fix: systemctl enable wg-quick@wg0



💡 Final Thoughts



Enabling WireGuard at boot ensures your VPN connection is always active without manual intervention.
This is especially important for servers, remote access setups, and privacy-focused configurations.



Comments

Leave a Reply

Your email address will not be published. Required fields are marked *