Roger Gonzalez 1672e76eca
Add documentation for switching to WireGuard
- Adds a new `wireguard.md` file detailing the process of switching from OpenVPN to WireGuard.
- Includes instructions for ProtonVPN users and guidance for other providers.
- Updates existing documentation in `vpn.md` and `port-forwarding.md` to reference the new guide.
- Adds a new section to `vpn.md` explaining the benefits of WireGuard.
- Clarifies the process of updating the `.env` file and `docker-compose.yaml`.
- Provides troubleshooting steps for common WireGuard issues.
2025-04-05 19:25:10 -03:00

138 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "Switching Gluetun to WireGuard"
date: 2025-04-05T12:00:00-03:00
draft: false
weight: 55
summary: Learn how to switch your Gluetun VPN configuration from OpenVPN to WireGuard for faster and more reliable connections.
---
Want faster VPN speeds and quicker connection times? It's time to switch from OpenVPN to **WireGuard**! This guide will walk you through updating your Gluetun configuration to use WireGuard — with a focus on **ProtonVPN**.
> ✅ **Why switch?** WireGuard is a modern VPN protocol thats faster, more efficient, and easier to configure than OpenVPN.
---
## For ProtonVPN Users 🚀
ProtonVPN makes it easy to use WireGuard with Gluetun. Here's how to update your configuration.
### Step 1: Get Your WireGuard Private Key 🔑
1. Go to [ProtonVPN WireGuard Config Generator](https://account.proton.me/u/0/vpn/WireGuard)
2. Select a server and enable **Port Forwarding** and **Moderate NAT** (optional)
3. Click **Download** to get the `.conf` file
4. Open the file and copy the value of `PrivateKey`
It will look something like this:
```
PrivateKey = wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=
```
---
### Step 2: Update Your `.env` File 🛠️
Open your `.env` file and remove the OpenVPN credentials:
```bash
nano /opt/yams/.env
```
Remove or comment out:
```env
VPN_USER=your-username
VPN_PASSWORD=your-password
```
You can also remove `VPN_SERVICE=protonvpn` if you want to hardcode it in the compose file (see below), or leave it — both work.
> 💡 Not sure how the `.env` file works? Check out our [Environment File Guide](/advanced/env-file/) to learn how to manage variables like `WIREGUARD_PRIVATE_KEY` securely.
---
### Step 3: Update `docker-compose.yaml` 🐳
Find the `gluetun` service and replace the `environment:` section with the following:
```yaml
environment:
- VPN_SERVICE_PROVIDER=protonvpn
- VPN_TYPE=wireguard
- WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=
- VPN_PORT_FORWARDING=on
- VPN_PORT_FORWARDING_PROVIDER=protonvpn
- PORT_FORWARD_ONLY=on
```
> 🧠 **Tip:** You can still use `${VARIABLE}` syntax if you prefer to keep the private key in your `.env` file. See the [Environment File Guide](/advanced/env-file/) for more info.
---
### Step 4: Restart YAMS 🔄
Apply the changes:
```bash
yams restart
```
---
### Step 5: Verify Its Working ✅
Run the VPN check:
```bash
yams check-vpn
```
You should see your qBittorrent IP is different from your local IP — and located in the country you selected in ProtonVPN.
You can also check the Gluetun logs:
```bash
docker logs gluetun
```
Look for lines like:
```
Using VPN provider: protonvpn
VPN type: wireguard
Port forwarding is enabled
```
---
## For Other VPN Providers 🌐
WireGuard support varies by provider. Heres what to do:
1. Visit the [Gluetun Provider Docs](https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers)
2. Find your VPN provider and follow their WireGuard instructions
3. Replace the `gluetun` environment variables in your `docker-compose.yaml` accordingly
> ⚠️ Not all providers support WireGuard or port forwarding. Check their documentation carefully.
---
## Troubleshooting 🔧
### Gluetun wont start?
- Double-check your `WIREGUARD_PRIVATE_KEY`
- Make sure `VPN_TYPE=wireguard` is set
- Check for typos in your `docker-compose.yaml`
### Port forwarding not working?
- Ensure `VPN_PORT_FORWARDING=on` and `PORT_FORWARD_ONLY=on` are set
- Verify that port forwarding is enabled in your ProtonVPN config
- Check Gluetun logs for forwarded port info
---
## Need Help? 🆘
If you're stuck:
- Visit our [Common Issues](/faqs/common-errors/) page
- Join our [Discord](https://discord.gg/Gwae3tNMST) or [Matrix](https://matrix.to/#/#yams-space:rogs.me) chat
- Or ask in the [YAMS Forum](https://forum.yams.media)