homelab-wireguard-vpn

WireGuard VPN server setup, peer configuration, key generation, split tunneling vs full tunnel routing, and remote access to a home network from mobile and laptop clients. Use when setting up WireGuard for remote access to a home network, or deciding between split and full tunnel routing.

By affaan-m · 2,831 installs

npx skills add affaan-m/ecc --skill homelab-wireguard-vpn

Source repository · Upstream listing

Homelab WireGuard VPN WireGuard is a fast, modern VPN protocol. It is the right choice for remote access to a home network — simpler to configure than OpenVPN and faster than most alternatives. All configuration examples show common setups. Review each command — especially the iptables forwarding rules and key file permissions — before applying them to your system, and make changes in a maintenance window. When to Use Setting up WireGuard server on a Raspberry Pi, Linux host, pfSense, or router Generating WireGuard keypairs and writing peer config files Configuring remote access from a phone or laptop to a home network Explaining split tunneling (route only home traffic) vs full tunnel (route all traffic) Troubleshooting WireGuard connections that will not come up Automating peer configuration generation for multiple clients How WireGuard Works Server Setup (Linux) Client Configuration Split Tunnel vs Full Tunnel Key Generation and Peer Management Keep private keys out of source control. If you use this script, write key material to files with mode 600 and never log or print it. pfSense / OPNsense WireGuard DDNS (Dynamic DNS) for Home Servers Most home internet connections have a dynamic IP. Use DDNS so your VPN endpoint stays reachable after an IP change. Troubleshooting Anti Patterns Best Practices Generate a unique keypair per client device — never reuse keys Use split tunneling ( AllowedIPs = <home subnets ) for mobile Set PersistentKeepalive = 25 on all mobile clients Use DDNS if your ISP assigns a dynamic IP; store credentials in env files, not inline Use scoped iptables forwarding rules (inbound on wg0 only) rather than a blanket FORWARD ACCEPT Add Pi hole's IP as DNS = in client configs to get ad blocking over the VPN Rotate the server keypair periodically and update all client configs Related Skills homelab network setup homelab vlan segmentation homelab pihole dns