
access vaultwarden without vpn. You host your own password manager. You control your data. But every time you leave the house, you’re locked out — unless you fire up a VPN first.
That friction kills adoption. Here’s how to access vaultwarden without vpn — or any self-hosted Bitwarden-compatible server — from anywhere, no VPN required, using three different methods that actually work in 2026.
Why “No VPN” Is a Real Need, Not Laziness
Most Vaultwarden guides tell you to connect via WireGuard or Tailscale before you can even open the app. That’s fine if you always have your VPN running. But:
- Your partner or family member won’t set up VPN just to grab a password
- Work devices often block VPN connections on corporate networks
- You’re traveling somewhere that blocks VPN protocols entirely
- You just want password autofill to work the moment you open Safari on a new device
The good news: you can expose Vaultwarden to the internet safely without forwarding ports or using a static IP. Three tools make this practical for free: Cloudflare Tunnel, Tailscale Funnel, and a reverse proxy with Let’s Encrypt.
Method 1: Cloudflare Tunnel (Recommended)

Cloudflare Tunnel creates an outbound connection from your server to Cloudflare’s edge. Nothing inbound hits your network. No ports open. No router configuration. It just works.
What you need
- A domain pointed to Cloudflare (free tier works)
- Cloudflare Zero Trust account (also free)
- Docker or systemd on your Vaultwarden host
Step 1: Install cloudflared
# On Ubuntu/Debian
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /usr/local/bin/cloudflared
chmod +x /usr/local/bin/cloudflared
Step 2: Authenticate
cloudflared tunnel login
Follow the URL it prints, choose your domain, approve the connection.
Step 3: Create the tunnel
cloudflared tunnel create vaultwarden
# Note the tunnel ID printed - you will need it
Step 4: Configure the tunnel
mkdir -p /etc/cloudflared
nano /etc/cloudflared/config.yml
Add this content:
tunnel:
credentials-file: /etc/cloudflared/.json
ingress:
- hostname: vaultwarden.yourdomain.com
service: http://localhost:8080
- service: http_status:404
Step 5: DNS and route
# Add the DNS record
cloudflared tunnel route dns vaultwarden vaultwarden.yourdomain.com
# Run it
cloudflared service install
systemctl enable cloudflared
systemctl start cloudflared
Your Vaultwarden is now live at https://vaultwarden.yourdomain.com. Cloudflare handles TLS, DDoS protection, and caching. Your server IP stays hidden.
Security hardening for Cloudflare Tunnel
By default, anyone who knows the domain can hit your Vaultwarden login page. Lock it down with Cloudflare Access:
- Go to Cloudflare Zero Trust – Access – Applications
- Add your Vaultwarden domain
- Set a Passcode policy – create a simple shared password for family access
- Optionally add your home IP to the allowlist so you skip the passcode from home
This gives you password-protected public access without exposing your server at all.
Method 2: Tailscale Funnel (Easiest Setup)

Tailscale is a mesh VPN that runs in userspace — no root required, no kernel modules. Their Funnel feature exposes a Tailscale service to the public internet over HTTPS, with zero firewall configuration.
What you need
- Tailscale account (free for personal use)
- Tailscale installed on your Vaultwarden host
- A subdomain you control (optional but recommended)
Step 1: Install and authenticate Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up --accept-dns=false
Step 2: Enable Funnel
# Make Vaultwarden listen on localhost only (Tailscale handles external access)
# Edit your docker-compose or systemd service to bind to 127.0.0.1
# Reserve a HTTPS certificate via Tailscale
tailscale funnel 443
# Verify
tailscale funnel status
Funnel automatically handles TLS via Tailscale’s certificate authority. Your Vaultwarden instance is now reachable at https://.ts.net/ — no domain required, no port forwarding.
Step 3: Set an auth policy for public access
# Require authentication for your Funnel endpoint
tailscale funnel --bg https://vaultwarden.local:80 --accept-dns
Tailscale’s ACLs let you control who can reach your services. Set "peerCapabilities": {"canConnect": true} in your Tailscale admin console for trusted devices.
Tailscale Funnel vs Cloudflare Tunnel
- Tailscale Funnel: Faster to set up, works without a domain, limited to Tailscale network for auth
- Cloudflare Tunnel: More enterprise features, works with any domain, better DDoS protection, broader CDN
For personal or family use, Tailscale Funnel wins on simplicity. For anything production-facing, Cloudflare Tunnel is more configurable.
Method 3: Reverse Proxy with Let’s Encrypt (Traditional)
This is the classic self-hosted approach. You run a reverse proxy (Nginx, Caddy, or Traefik), get a free TLS certificate from Let’s Encrypt, and expose port 443 securely.
Why this is riskier without a VPN
Exposing port 443 directly means your Vaultwarden server is reachable from the internet. If a vulnerability exists in Vaultwarden or your TLS config, you’re directly exposed. Use this method only if you:
- Keep Vaultwarden fully updated
- Use a strong master password and 2FA
- Run fail2ban to block brute force attempts
- Consider adding Basic Auth in front of Vaultwarden as an extra layer
Caddyfile example (recommended – auto TLS)
vaultwarden.yourdomain.com {
reverse_proxy localhost:8080
log {
output file /var/log/caddy/vaultwarden.log
}
}
Caddy automatically fetches and renews Let’s Encrypt certificates. Restart Caddy, and your Vaultwarden instance is live at https://vaultwarden.yourdomain.com.
Nginx configuration (alternative)
server {
listen 443 ssl http2;
server_name vaultwarden.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/vaultwarden.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vaultwarden.yourdomain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Certbot handles certificate renewal with certbot --nginx -d vaultwarden.yourdomain.com.
Comparison: Which Method Should You Use?
| Feature | Cloudflare Tunnel | Tailscale Funnel | Reverse Proxy + LE |
|---|---|---|---|
| Setup time | 15-20 min | 10 min | 20-30 min |
| No domain needed | No | Yes | No |
| No port forwarding | Yes | Yes | No |
| DDoS protection | Yes | Limited | No |
| Free tier | Yes | Yes (personal) | Yes |
| Extra auth layer | Cloudflare Access | Tailscale ACLs | Basic Auth / fail2ban |
| Best for | Production / multi-user | Personal / family | Advanced users |
Setting Up Your Vaultwarden Client for External Access
Once your server is externally accessible, configuring clients takes seconds.
Desktop browsers (Chrome, Firefox, Safari)
- Install the Bitwarden extension from your browser’s extension store
- Click the extension icon – Settings – Dark Mode toggle (optional)
- Go to Settings – Server URL and enter your custom domain (e.g.,
https://vaultwarden.yourdomain.com) - Log in with your master password
Mobile (iOS and Android)
- Download Bitwarden from the App Store or Play Store
- Open the app – Settings – Server
- Tap “Self-hosted” and enter your domain
- Save and log in normally
The Bitwarden client apps are fully compatible with Vaultwarden. Your existing Vaultwarden installation requires zero changes — only the access layer changes.
Security Checklist for Public-Facing Vaultwarden

- Use a strong master password – 14+ characters, random, never reused. Generate it with Bitwarden itself before you lock yourself out.
- Enable 2FA with TOTP – Vaultwarden supports FreeOTP, Authy, and any TOTP app. This is non-negotiable for a publicly accessible instance.
- Keep Vaultwarden updated – New versions patch critical security issues. Set a monthly reminder or watch the GitHub releases feed.
- Fail2ban brute force protection – Vaultwarden has built-in fail2ban support. Enable it to block repeated login attempts.
- Rate limiting at the proxy – Both Caddy and Nginx can limit login request rates. Set 5-10 attempts per minute per IP.
- Regular backups – Vaultwarden stores data in SQLite or MariaDB. Back it up automatically to a separate location.
FAQ
Is it safe to expose Vaultwarden to the internet?
Yes, if you follow security best practices. The risk is not in exposing Vaultwarden — it is in exposing an unpatched, poorly configured Vaultwarden. With TLS, 2FA, rate limiting, and fail2ban, a publicly accessible Vaultwarden is no more risky than any other web-facing service.
What’s the difference between Vaultwarden and Bitwarden hosted?
Vaultwarden is a lightweight, Rust implementation of the Bitwarden API. It is fully compatible with all Bitwarden clients but uses significantly less RAM (under 30MB vs 500MB+ for the official Docker image). Your data format is identical — you can export and import between them freely.
Can I use a dynamic DNS (DDNS) service instead of a static domain?
Yes, but it is more fragile. Cloudflare Tunnel and Tailscale handle the DNS routing automatically. If you want to use DuckDNS or no-ip, you will need to either configure DDNS updates on your router or run a ddns-client script. Cloudflare Tunnel is still easier and more reliable.
Does this work behind a CG-NAT or carrier-grade NAT?
Both Cloudflare Tunnel and Tailscale create outbound connections from your server to their edge — they do not require inbound port access. This means they work perfectly behind CG-NAT, mobile hotspots, and restrictive firewalls. This is one of their biggest advantages over traditional port forwarding.
How do I update Vaultwarden?
# Docker
docker pull vaultwarden/server:latest
docker-compose down && docker-compose up -d
# Systemd (native install)
sudo systemctl stop vaultwarden
sudo wget -O /opt/vaultwarden/vaultwarden https://github.com/dani-garcia/vaultwarden/releases/latest/download/vaultwarden-linux-x86_64
sudo systemctl start vaultwarden
Conclusion
You do not need a VPN to access your self-hosted password manager from anywhere. Cloudflare Tunnel is the most production-ready option for most users — zero inbound ports, free, and backed by Cloudflare’s infrastructure. Tailscale Funnel is the fastest to set up for personal use. A reverse proxy with Let’s Encrypt remains a solid choice for advanced users who want full control.
Pick one, follow the steps, and your Vaultwarden instance becomes as accessible as any cloud password manager — without surrendering your data to a third party.