If you’re trying to turn your Ubiquiti EdgeRouter into a VPN client and you feel like you’ve stumbled into a command-line jungle—relax. You’re not alone. Many IT professionals, freelancers, and privacy-conscious entrepreneurs face the same challenge: getting their EdgeRouter VPN client to securely connect to a VPN server without a graphical interface.
Whether you’re using the EdgeRouter X, Lite, or 4, this guide walks you through step-by-step configuration as a VPN client and server—complete with persistent setup, routing rules, WireGuard, OpenVPN cert handling, and troubleshooting tips. If you’re looking to offer VPN services under your own brand without infrastructure headaches, PureWL is your turnkey solution.
What Is an EdgeRouter and Why Use It as a VPN Client?
EdgeRouter is Ubiquiti’s line of advanced routers aimed at power users. They’re incredibly capable but not always user-friendly. Unlike typical home routers, EdgeRouters are built for speed, flexibility, and professional-grade control.
Why turn one into a VPN client? Because it lets you route all your internet traffic through a secure, encrypted tunnel—before it even hits your laptop, phone, or smart TV. It’s perfect for businesses, remote workers, or anyone who wants to lock down their network at the gateway.
Understanding VPN Support on EdgeRouter VPN Client
Let’s clarify something first: EdgeRouters do not have a built-in GUI for VPN client setup. That means you’ll be diving into the command-line interface (CLI). But don’t worry—we’ll walk you through it.
Here’s a clear comparison table for understanding VPN protocol support on EdgeRouters:
VPN Protocol | Compatibility | Ease of Setup | Performance | Best For | Requires Extra Packages? |
L2TP/IPSec | Native support on Windows/macOS | Easiest (CLI-based) | Moderate | Beginners, remote access | No |
OpenVPN | Widely supported (cross-platform) | Moderate (needs config) | Good | Flexibility, compatibility | Yes |
WireGuard | Requires modern firmware or install | Moderate (manual setup) | Excellent (lightweight) | Speed-focused users, efficient routing | Sometimes (firmware-dependen |
Before You Begin: What You’ll Need
You’re going to need a few things before jumping into configuration mode:
- Your EdgeRouter device (X, Lite, 4 – it doesn’t matter).
- The latest firmware installed.
- SSH access or a console cable to connect to the CLI.
- VPN credentials: server IP, username/password, and a shared secret or configuration file (.ovpn or .conf).
- A bit of patience — but this guide will save you hours.
Step 1: OpenVPN Client Setup — Persistent & Secure
Most guides cover only temporary CLI commands. Here’s how to configure OpenVPN as a persistent interface.
1. Upload .ovpn and Credentials
scp myvpn.ovpn [email protected]:/config/auth/
If using username/password:
echo "user" > /config/auth/pass.txt
echo "password" >> /config/auth/pass.txt
chmod 600 /config/auth/pass.txt
Add to .ovpn:
auth-user-pass /config/auth/pass.txt
Certificate-Based Authentication:
If your provider requires certificates, include these in your .ovpn:
ca /config/auth/ca.crt
cert /config/auth/client.crt
key /config/auth/client.key
Upload and protect them with:
chmod 600 /config/auth/*.crt /config/auth/*.key
2. Persistent OpenVPN Interface via EdgeOS
configure
set interfaces openvpn vtun0 config-file /config/auth/myvpn.ovpn
set interfaces openvpn vtun0 mode client
set interfaces openvpn vtun0 persistent
commit; save; exit
This setup ensures OpenVPN reconnects after reboot.
Step 2: Add NAT & Firewall for OpenVPN
configure
set service nat rule 5000 type masquerade
set service nat rule 5000 outbound-interface vtun0
commit; save
Step 3: Policy-Based Routing (Selective VPN Access)
This lets you route only some devices or VLANs through the VPN.
1. Create Routing Table
set protocols static table 10 route 0.0.0.0/0 next-hop vtun0
2. Create Modify Rule and Apply to Interface
set firewall modify VPN_ROUTE rule 10 source address 192.168.2.0/24
set firewall modify VPN_ROUTE rule 10 modify table 10
3. Apply to Physical Interface (Important!)
On some models like EdgeRouter 4, VLAN-based PBR may require binding to a dedicated port (e.g., eth2) rather than a VLAN sub-interface (e.g., eth1.10).
set interfaces ethernet eth1 firewall in modify VPN_ROUTE
commit; save
Step 4: WireGuard Edgerouter VPN Client Setup (Faster, Lightweight)
1. Install WireGuard (if not included)
On older firmware, use:
add-apt-repository ppa:wireguard/wireguard
apt update && apt install wireguard-tools
Or download precompiled .deb from the community GitHub.
2. Generate Keys Securely
umask 077
wg genkey | tee /config/auth/wg-private.key | wg pubkey > /config/auth/wg-public.key
3. Configure Interface & Peer
configure
set interfaces wireguard wg0 address 10.10.10.2/24
set interfaces wireguard wg0 private-key-file /config/auth/wg-private.key
set interfaces wireguard wg0 peer PEER1 public-key 'peerPublicKey'
set interfaces wireguard wg0 peer PEER1 endpoint 123.123.123.123:51820
set interfaces wireguard wg0 peer PEER1 allowed-ips 0.0.0.0/0
commit; save
4. NAT and Firewall Rules
set service nat rule 6000 type masquerade
set service nat rule 6000 outbound-interface wg0
set firewall name WAN_LOCAL rule 20 action accept
set firewall name WAN_LOCAL rule 20 protocol udp
set firewall name WAN_LOCAL rule 20 destination port 51820
commit; save
Step 5: EdgeRouter as L2TP VPN Server

1. Create Users & IP Pool
set vpn l2tp remote-access authentication local-users username user password pass
set vpn l2tp remote-access client-ip-pool start 192.168.100.10
set vpn l2tp remote-access client-ip-pool stop 192.168.100.100
2. IPSec Config & External IP
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret mySecret
set vpn l2tp remote-access outside-address [WAN IP]
set vpn l2tp remote-access dns-servers server-1 8.8.8.8
commit; save
Step 6: Connect to EdgeRouter VPN from macOS
- Go to System Preferences > Network
- Add VPN → L2TP over IPSec
- Server = your WAN IP
- Add account credentials and shared secret
- Click Connect
Step 7: Troubleshooting
OpenVPN
cat /var/log/openvpn.log
- AUTH_FAILED: Wrong password
- TLS Error: Cert or port mismatch
WireGuard
wg show
No handshake? Check firewall, endpoint, or keys
Step 8: Advanced VPN Scenarios
A. Multi-VPN Failover
set interfaces openvpn vtun1 config-file /config/auth/backup.ovpn
set protocols static route 0.0.0.0/0 next-hop vtun0
set protocols static route 0.0.0.0/0 next-hop vtun1 distance 2
B. Split Tunneling
Use PBR (Step 3) to route only specific VLANs or subnets through VPN.
Step 9: Security Best Practices
- Store keys in /config/auth and secure via chmod 600
- Rotate VPN credentials and secrets regularly
- Use allowed-ips to restrict peers on WireGuard
- Never hardcode secrets in CLI without file references
Step 10: Performance Tuning
Model | OpenVPN Max | WireGuard Max |
EdgeRouter X | ~30 Mbps | ~100 Mbps |
EdgeRouter Lite | ~70 Mbps | ~150 Mbps |
EdgeRouter 4 | ~180 Mbps | ~250 Mbps |
Tip: WireGuard is ideal for speed and lightweight deployments.
GUI & Third-Party Tools (Use with Caution)
- UNMS/UISP: Great for monitoring, not VPN config
- Scripts:
Always back up configs before using external scripts.
Launch a Branded VPN Built for EdgeRouter VPN Client
Why do all this for every client when you can launch a VPN under your brand, with PureWL?
PureWL provides:
- Custom-branded apps
- EdgeRouter compatibility
- No server maintenance
- Recurring revenue for resellers & agencies
Start selling VPN access, preconfigured for EdgeRouter VPN client, in days—not months.
FAQs
How do I make OpenVPN persistent?
Use set interfaces openvpn vtun0 config-file in EdgeOS config mode.
Can I split VPN traffic?
Yes—use Policy-Based Routing to isolate subnets or VLANs.
Is WireGuard better than OpenVPN?
Yes, especially for speed and simplicity.
What if my firmware doesn’t support WireGuard?
Use GitHub community builds or .deb packages matched to your version.
Can I route VLANs through VPN?
Yes, but ER-4 and similar models work best using physical ports for PBR.