# WireGuard Client neu erstellen und testen

## Problem

Trotz korrekter Config (`AllowedIPs = 10.8.0.0/24`) kommt Traffic von Windows NICHT ?ber VPN. Die Route ist vorhanden, Ping funktioniert, aber HTTP/HTTPS-Traffic verwendet die ?ffentliche IP.

## Strategie

1. **Neue WireGuard-Client-Config generieren** (frische Keys, gleiche IP)
2. **Test-Container erstellen** um zu pr?fen, ob VPN grunds?tzlich funktioniert
3. **Windows-Client mit neuer Config testen**

## Schritt 1: WireGuard-Client neu generieren

### Alte Config sichern

Die alte Config wird automatisch gesichert als `.backup-{timestamp}`.

### Neue Config generieren

```bash
cd deployment/ansible

# Grafana-Test Client neu generieren (gleiche IP: 10.8.0.7)
ansible-playbook -i inventory/production.yml playbooks/regenerate-wireguard-client.yml \
  -e "client_name=grafana-test" \
  -e "client_ip=10.8.0.7"
```

**Was passiert:**
- Alte Config wird gesichert
- Alte Client-Keys werden aus Server-Config entfernt
- Neue Client-Keys werden generiert
- Neuer Client wird zu Server-Config hinzugef?gt
- WireGuard-Service wird neu gestartet
- Neue Config-Datei wird lokal gespeichert: `deployment/ansible/wireguard-clients/grafana-test.conf`

### Neue Config auf Windows verwenden

1. **Lade neue Config herunter** von:
   ```
   deployment/ansible/wireguard-clients/grafana-test.conf
   ```

2. **Importiere in WireGuard:**
   - ?ffne WireGuard
   - Entferne alte "grafana-test" Verbindung
   - Klicke auf "Importieren aus Datei"
   - W?hle die neue `grafana-test.conf`

3. **Verbinde mit VPN**

4. **Teste:**
   ```powershell
   ping 10.8.0.1
   ```

5. **Teste Grafana:**
   - ?ffne `https://grafana.michaelschiemer.de`
   - Warte 5 Sekunden

## Schritt 2: Test mit Docker-Container

Um zu pr?fen, ob VPN grunds?tzlich funktioniert (unabh?ngig von Windows):

```bash
cd deployment/ansible

# Teste WireGuard-Verbindung aus Docker-Container
ansible-playbook -i inventory/production.yml playbooks/test-wireguard-docker-container.yml \
  -e "client_name=grafana-test"
```

**Was passiert:**
- Docker-Container mit WireGuard wird gestartet
- Client-Config wird in Container geladen
- Container verbindet sich mit VPN
- Container testet:
  - Ping zu `10.8.0.1`
  - Curl zu `https://grafana.michaelschiemer.de`
  - DNS-Aufl?sung
- Traefik-Logs werden gepr?ft, ob Container-IP sichtbar ist

**Erwartetes Ergebnis:**
- ? Container kann `10.8.0.1` pingen
- ? Container kann Grafana erreichen (Status: 200 oder 403, aber Verbindung funktioniert)
- ? Traefik sieht Container-VPN-IP (`10.8.0.x`)

**Falls Test-Container funktioniert:**
? VPN-Server funktioniert korrekt
? Problem liegt an Windows-Client oder Windows-Routing

**Falls Test-Container nicht funktioniert:**
? VPN-Server-Konfiguration k?nnte Problem haben
? Weiter debuggen

## Schritt 3: Container nach Test entfernen

```bash
# Auf dem Server
docker stop wireguard-test-client
docker rm wireguard-test-client
```

## N?chste Schritte

### Wenn Container-Test erfolgreich ist:

1. **Windows-Client mit neuer Config testen**
   - Importiere neue Config
   - Verbinde mit VPN
   - Teste Grafana-Zugriff

2. **Traefik-Logs pr?fen:**
   - Wenn `ClientHost: 10.8.0.7` ? ? Traffic kommt ?ber VPN!
   - Wenn `ClientHost: 89.246.96.244` ? ? Problem liegt an Windows

3. **Wenn Windows immer noch nicht funktioniert:**
   - Windows Firewall pr?fen
   - Windows Route-Tabelle erneut pr?fen
   - WireGuard auf Windows neu installieren
   - Eventuell anderen Windows-Client verwenden

### Wenn Container-Test fehlschl?gt:

1. **WireGuard-Server-Config pr?fen:**
   ```bash
   sudo cat /etc/wireguard/wg0.conf
   ```

2. **WireGuard-Service-Logs pr?fen:**
   ```bash
   sudo journalctl -u wg-quick@wg0 -f
   ```

3. **Firewall pr?fen:**
   ```bash
   sudo ufw status | grep 51820
   ```

## Troubleshooting

### Neue Config generiert, aber Windows-Client funktioniert nicht

1. **Pr?fe neue Config:**
   ```powershell
   # ?ffne neue Config-Datei
   type grafana-test.conf
   # Pr?fe: AllowedIPs = 10.8.0.0/24
   ```

2. **Pr?fe Windows Route:**
   ```powershell
   route print | findstr "10.8"
   ```

3. **Pr?fe WireGuard-Status:**
   - ?ffne WireGuard
   - W?hle "grafana-test"
   - Pr?fe Transfer (sollte > 0 sein, wenn VPN verbunden ist)

### Container-Test schl?gt fehl

1. **Container-Logs pr?fen:**
   ```bash
   docker logs wireguard-test-client
   ```

2. **Container startet nicht:**
   - Pr?fe ob WireGuard-Config korrekt ist
   - Pr?fe ob Container-Rechte korrekt sind (`--cap-add=NET_ADMIN`)

3. **Container verbindet nicht:**
   - Pr?fe Server Firewall
   - Pr?fe WireGuard-Server-Config
   - Pr?fe ob Client in Server-Config enthalten ist
