VPNSmith
self-host-vpnINFO

Eigenes VPN auf Contabo hosten: vollständiger WireGuard-Leitfaden 2026

Schritt-für-Schritt-Anleitung zur Einrichtung von WireGuard auf einem Contabo VPS (€4,99/Monat). Bootstrap-Skripte, UFW, fail2ban, macOS/iOS/Linux/Windows-Clients. Ehrliche Grenzen im Vergleich zu kommerziellen VPNs.

Von Eric Gerard · Fondateur · VPNSmith — Spécialiste self-host VPN & VPS GDPR14 Min. LesezeitPhoto: Taylor Vick — Unsplash

Müde davon, nach dem Promo-Jahr €12,99/Monat für NordVPN zu zahlen. Sie möchten einen verschlüsselten Tunnel, den Sie mit niemandem teilen, der in einer DSGVO-konformen Gerichtsbarkeit gehostet wird und dessen Konfiguration Sie Zeile für Zeile kontrollieren. Gute Nachrichten: In 20 Minuten ist er auf einem Contabo VPS für €4,99/Monat eingerichtet, und dieser Leitfaden gibt Ihnen jeden Befehl. Keine Werbung, keine Abstraktion – nur das exakte produktionsreife Skript.

Wie hostet man ein VPN mit WireGuard auf einem VPS selbst?

Das Selbsthosting eines WireGuard-VPNs dauert etwa 20 Minuten: Einen Contabo VPS S bereitstellen (€4,99/Monat, Ubuntu 24.04), apt install wireguard ausführen, Server-Schlüssel generieren, eine 10-zeilige wg0.conf mit Subnetz 10.66.66.0/24 auf Port 51820 schreiben, IP-Weiterleitung aktivieren und NAT über iptables hinzufügen. Kosten: unter €60/Jahr im Vergleich zu ~€540 für NordVPN über 5 Jahre.

Warum selbst hosten statt eines kommerziellen Dienstes

Ein kommerzielles VPN verkauft Ihnen ein Versprechen: keine Logs, geteilte IP über Tausende von Nutzern, "no-logs-freundliche" Gerichtsbarkeit (Panama, BVI, Schweiz). Auf dem Papier solide. In der Praxis:

  • Geteilte IP = geteilte Reputation. Wenn 4.000 NordVPN-Nutzer über dieselbe IP austreten, erben Sie deren Blacklists. Stripe wird nach einem zusätzlichen 3DS fragen. Cloudflare wird Ihnen endlose Herausforderungen servieren. Sie hosten Ihr eigenes VPN = Ihre eigene saubere IP.
  • Keine Logs in Echtzeit verifizierbar. Ein PwC-Audit validiert eine Richtlinie zu einem bestimmten Zeitpunkt. Zwischen Audits können Gerichtsbeschlüsse (US-Subpoenas, EU-Anordnungen) temporäres Logging erzwingen. Auf Ihrem VPS entscheiden Sie. Sie löschen, wann immer Sie wollen.
  • Preise, die sich bei der Verlängerung verdoppeln. NordVPN 2 Jahre: €71,76. Jährliche Verlängerung: €156/Jahr. Über 5 Jahre: ~€600. Ein Contabo VPS S über 5 Jahre: ~€300. Und Sie können andere Dienste darauf hosten.

Der ehrliche Kompromiss: Sie werden Netflix US mit einem dedizierten VPS nicht entsperren (Netflix blockiert Rechenzentrums-ASNs). Für Streaming dokumentieren wir eine hybride Lösung im DPI-Umgehungsleitfaden.

Die richtige Contabo VPS auswählen

Contabo bietet drei relevante Bereiche für ein persönliches VPN:

PlanPreis/MonatvCPURAMBandbreiteAm besten für
VPS S (Legacy)€4,9948 GB200 MbpsSolo VPN 1-3 Geräte
VPS S Cloud€6,994 vCPU NVMe8 GB600 MbpsFamilien-VPN 5-10 Geräte
Cloud VPS 10€9,996 vCPU16 GB1 GbpsMulti-Tunnel + zusätzliche Dienste

Unsere Standardwahl: VPS S für €4,99/Monat. Für 90% der individuellen Anwendungen mehr als ausreichend. 200 Mbps Bandbreite sind garantiert (iperf3-getestet, konstant 195 Mbps).

Empfohlenes Rechenzentrum: Nürnberg (DE) für <30 ms Latenz aus Kontinentaleuropa. Wenn Sie in Kanada/USA sind, wählen Sie US Central (St. Louis).

Schritt-für-Schritt-Einrichtung

Schritt 1 — VPS bereitstellen

Auf contabo.com, wählen Sie VPS S, Ubuntu 24.04 LTS, Root-Passwort (wir erstellen später einen normalen Benutzer), Rechenzentrum Nürnberg. Zahlen Sie per Karte oder PayPal. Aktivierung: E-Mail innerhalb von ~5 Minuten mit der öffentlichen IP und dem Root-Passwort.

Schritt 2 — Server absichern

Erste SSH-Verbindung:

ssh root@YOUR_PUBLIC_IP
# Passwort ist in der Contabo-E-Mail

Einen Nicht-Root-Benutzer erstellen, Ihren SSH-Schlüssel hinzufügen, Root-Login deaktivieren:

adduser ericg
usermod -aG sudo ericg
mkdir -p /home/ericg/.ssh
# Fügen Sie Ihren öffentlichen Schlüssel ein (~/.ssh/id_ed25519.pub lokal)
nano /home/ericg/.ssh/authorized_keys
chmod 700 /home/ericg/.ssh
chmod 600 /home/ericg/.ssh/authorized_keys
chown -R ericg:ericg /home/ericg/.ssh

# Root- und Passwort-Login deaktivieren
sed -i 's/^PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart ssh

Verlassen Sie die Root-Shell, verbinden Sie sich erneut über ssh ericg@YOUR_IP. Wenn es funktioniert, fahren Sie fort.

Firewall und fail2ban installieren:

sudo apt update && sudo apt upgrade -y
sudo apt install -y ufw fail2ban
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 51820/udp
sudo ufw --force enable
sudo systemctl enable --now fail2ban

Schritt 3 — WireGuard installieren und konfigurieren

sudo apt install -y wireguard qrencode

# Server-Schlüssel generieren
cd /etc/wireguard
sudo wg genkey | sudo tee server_private.key | sudo wg pubkey | sudo tee server_public.key
sudo chmod 600 server_private.key
SERVER_PRIV=$(sudo cat server_private.key)

Ihre öffentliche Schnittstelle identifizieren (oft ens3 oder eth0):

ip route | grep default
# default via X.X.X.X dev ens3 ...

Erstellen Sie /etc/wireguard/wg0.conf:

sudo nano /etc/wireguard/wg0.conf

Inhalt (ersetzen Sie ens3 durch Ihre Schnittstelle, falls abweichend):

[Interface]
PrivateKey = PASTE_SERVER_PRIV_HERE
Address = 10.66.66.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

IP-Weiterleitung aktivieren:

echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

WireGuard starten:

sudo systemctl enable --now wg-quick@wg0
sudo wg show
# Sie sollten "interface: wg0" und "listening port: 51820" sehen

Schritt 4 — Einen Client generieren

Für jedes Gerät:

cd /etc/wireguard
sudo wg genkey | sudo tee macbook_private.key | sudo wg pubkey | sudo tee macbook_public.key
CLIENT_PRIV=$(sudo cat macbook_private.key)
CLIENT_PUB=$(sudo cat macbook_public.key)
SERVER_PUB=$(sudo cat server_public.key)

Erstellen Sie /tmp/macbook.conf (auf dem Server, um den QR-Code zu generieren — dann löschen):

[Interface]
PrivateKey = PASTE_CLIENT_PRIV
Address = 10.66.66.2/24
DNS = 1.1.1.1, 9.9.9.9

[Peer]
PublicKey = PASTE_SERVER_PUB
Endpoint = YOUR_PUBLIC_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Diesen Peer zum Server hinzufügen:

sudo wg set wg0 peer PASTE_CLIENT_PUB allowed-ips 10.66.66.2/32
# Und speichern:
sudo nano /etc/wireguard/wg0.conf
# Am Ende hinzufügen:
# [Peer]
# PublicKey = PASTE_CLIENT_PUB
# AllowedIPs = 10.66.66.2/32

Für iOS/Android: QR-Code generieren

qrencode -t ansiutf8 &lt; /tmp/macbook.conf

Mit der offiziellen WireGuard-App scannen. Einschalten. Fertig.

Schritt 5 — Keine Lecks überprüfen

Auf Ihrem Client, der mit dem Tunnel verbunden ist:

  1. Gehen Sie zu ipleak.net — die IP muss die Contabo VPS sein, nicht Ihre.
  2. Gehen Sie zu browserleaks.com/webrtc — keine lokale IP wird angezeigt.
  3. Gehen Sie zu dnsleaktest.com — DNS wird über 1.1.1.1 (Cloudflare) aufgelöst.

Wenn ein WebRTC-Leck angezeigt wird: Aktivieren Sie den Kill-Switch in der WireGuard-Mobile-App ("On-Demand") oder blockieren Sie WebRTC in Firefox (about:configmedia.peerconnection.enabledfalse).

Zusätzliche Absicherung

Empfohlene Produktionsabsicherungen:

  • Lynis-Audit: sudo apt install lynis && sudo lynis audit system. Zielwert: 80+/100.
  • SSH auf benutzerdefiniertem Port: Ändern Sie /etc/ssh/sshd_config auf Port 2222, aktualisieren Sie UFW.
  • IPv6 deaktivieren, wenn nicht verwendet: sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 (in sysctl.conf dauerhaft).
  • Minimale Logs: Standardmäßig behält journald 4 Wochen. Reduzieren Sie auf 7 Tage über /etc/systemd/journald.conf, wenn das Bedrohungsmodell streng ist.
  • Contabo-Backups: Aktivieren Sie automatische Snapshots im Contabo-Panel (€1/Monat, nicht für Logs, sondern für schnelle Wiederherstellung nach einem Fehler).

Automatisierte Einrichtung über ein Ansible-Playbook

Server-Racks in Blau beleuchtet in einem Rechenzentrum
Server-Racks in Blau beleuchtet in einem Rechenzentrum

Wenn Sie planen, mehr als einen VPS bereitzustellen — oder einfach Ihren Tunnel in 3 Minuten nach einem Vorfall wiederherstellen möchten — vermeidet die Automatisierung über Ansible das erneute Eintippen der obigen Befehle. Hier ist das Playbook, das wir in der Produktion ausführen. Idempotent (sicher erneut auszuführen), getestet auf Ubuntu 24.04 LTS Contabo Nürnberg im Mai 2026.

Lokale Voraussetzungen

# Auf Ihrem Laptop
pip install --user ansible
mkdir -p ~/vpn-ansible && cd ~/vpn-ansible

Erstellen Sie inventory.yml (ersetzen Sie die IP durch die, die Ihnen Contabo per E-Mail geschickt hat):

all:
  hosts:
    vpn1:
      ansible_host: YOUR_PUBLIC_IP
      ansible_user: root
      ansible_python_interpreter: /usr/bin/python3

Das playbook.yml

---
- name: Bootstrap VPNSmith WireGuard auf Contabo
  hosts: vpn1
  become: yes
  vars:
    admin_user: ericg
    admin_ssh_key: "{{ lookup('file', '~/.ssh/id_ed25519.pub') }}"
    wg_subnet: "10.66.66.0/24"
    wg_port: 51820
  tasks:

    - name: Apt-Cache aktualisieren
      apt:
        update_cache: yes
        cache_valid_time: 3600

    - name: Alle Pakete aktualisieren
      apt:
        upgrade: dist
        autoremove: yes

    - name: Hardening- und WireGuard-Pakete installieren
      apt:
        name:
          - ufw
          - fail2ban
          - wireguard
          - qrencode
          - unattended-upgrades
        state: present

    - name: Admin-Benutzer erstellen
      user:
        name: "{{ admin_user }}"
        groups: sudo
        shell: /bin/bash
        password: "!"

    - name: Admin-SSH-Schlüssel autorisieren
      authorized_key:
        user: "{{ admin_user }}"
        key: "{{ admin_ssh_key }}"
        state: present

    - name: SSH-Root-Login + Passwörter deaktivieren
      lineinfile:
        path: /etc/ssh/sshd_config
        regexp: "{{ item.regex }}"
        line: "{{ item.line }}"
      loop:
        - { regex: '^#?PermitRootLogin', line: 'PermitRootLogin no' }
        - { regex: '^#?PasswordAuthentication', line: 'PasswordAuthentication no' }
      notify: restart ssh

    - name: UFW-Standardrichtlinien konfigurieren
      ufw:
        direction: "{{ item.direction }}"
        policy: "{{ item.policy }}"
      loop:
        - { direction: incoming, policy: deny }
        - { direction: outgoing, policy: allow }

    - name: SSH + WireGuard durch UFW erlauben
      ufw:
        rule: allow
        port: "{{ item.port }}"
        proto: "{{ item.proto }}"
      loop:
        - { port: 22, proto: tcp }
        - { port: "{{ wg_port }}", proto: udp }

    - name: UFW aktivieren
      ufw:
        state: enabled
        policy: deny

    - name: IP-Weiterleitung aktivieren
      sysctl:
        name: net.ipv4.ip_forward
        value: "1"
        state: present
        reload: yes

    - name: Öffentliche Schnittstelle erkennen
      shell: ip -o -4 route show to default | awk '{print $5}'
      register: pub_iface
      changed_when: false

    - name: Server-WireGuard-Schlüssel generieren
      shell: |
        umask 077
        wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
      args:
        creates: /etc/wireguard/server_private.key

    - name: Server-Schlüssel lesen
      slurp:
        src: "/etc/wireguard/{{ item }}"
      register: wg_keys
      loop:
        - server_private.key
        - server_public.key

    - name: wg0.conf rendern
      copy:
        dest: /etc/wireguard/wg0.conf
        mode: '0600'
        content: |
          [Interface]
          PrivateKey = {{ wg_keys.results[0].content | b64decode | trim }}
          Address = 10.66.66.1/24
          ListenPort = {{ wg_port }}
          PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o {{ pub_iface.stdout }} -j MASQUERADE
          PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o {{ pub_iface.stdout }} -j MASQUERADE

    - name: wg-quick@wg0 aktivieren + starten
      systemd:
        name: wg-quick@wg0
        enabled: yes
        state: started

    - name: fail2ban aktivieren + starten
      systemd:
        name: fail2ban
        enabled: yes
        state: started

  handlers:
    - name: ssh neu starten
      systemd:
        name: ssh
        state: restarted

Ausführung

ansible-playbook -i inventory.yml playbook.yml

Rechnen Sie mit ~3 Minuten beim ersten Mal (im Wesentlichen apt-Upgrade). Der Tunnel ist aktiv. Ihr ericg-Benutzer kann sich mit dem Ed25519-Schlüssel per SSH verbinden. Sie können das Playbook so oft ausführen, wie Sie möchten, ohne etwas zu beschädigen — es überschreibt die WireGuard-Schlüssel nicht (Idempotenz garantiert durch das creates:-Flag).

Um einen Client hinzuzufügen (in einer zweiten Phase des Playbooks behandelt, dokumentiert im WireGuard-Konfigurationsvorlagen-Leitfaden): Client-Schlüssel generieren, client.conf mit Jinja2 rendern, über QR-Code übertragen.

Praktischer Tipp: Versionieren Sie das Playbook in einem privaten Git-Repo (niemals öffentlich — die Ansible Vault-Schlüssel sind nicht sicher gegen öffentliches GitHub, wenn die Passphrase jemals bekannt wird). Wir verwenden ein selbst gehostetes Gitea auf demselben VPS für perfekte Zirkularität.

Kostenloses Uptime-Monitoring mit UptimeRobot

Wenn Sie wissen möchten, wann Ihr Tunnel ausfällt, ohne manuell zu aktualisieren, deckt UptimeRobot 95% des Bedarfs kostenlos ab. Kostenloser Plan: 50 Monitore, Überprüfungen alle 5 Minuten, E-Mail + Telegram + Discord-Webhook-Benachrichtigungen.

Wir überwachen 3 verschiedene Endpunkte, um den Fehlertyp zu unterscheiden:

Monitor 1 — Servergesundheit (HTTPS-Ping der IP)

UptimeRobot-Typ "HTTP(s)", URL https://YOUR_PUBLIC_IP/healthz. Um diese Überprüfung zu beantworten, installieren Sie einen leichten Caddy auf Port 443:

sudo apt install -y caddy
sudo tee /etc/caddy/Caddyfile > /dev/null <<EOF
:443 {
  respond /healthz "OK" 200
  tls internal
}
EOF
sudo systemctl restart caddy
sudo ufw allow 443/tcp

Wenn dieser Monitor DOWN geht → ist der VPS selbst nicht erreichbar (Contabo-Netzwerkausfall oder Ihr VPS ist abgestürzt).

Monitor 2 — Tunnelgesundheit (von Cloudflare Workers)

Richten Sie einen kostenlosen Cloudflare Worker ein (100k Anfragen/Tag im kostenlosen Tarif), der https://ifconfig.me mit einem benutzerdefinierten User-Agent abruft. Damit die Überprüfung sinnvoll ist, müsste der Worker den WireGuard-Tunnel durchqueren, was mit Workern nicht direkt möglich ist — Umgehung mit einem UptimeRobot "Keyword"-Monitor, der einen von Ihnen gehosteten Endpunkt trifft, der überprüft, ob die Antwort die Contabo VPS IP enthält (nicht eine Wohnadresse).

Überwachte URL: https://YOUR_PUBLIC_IP/whoami (Caddy leitet an ifconfig.me weiter).

Schlüsselwort: die IPv4 Ihres VPS.

Wenn das Routing unterbrochen ist (DNS-Hijack, gebrochenes NAT), würde die zurückgegebene IP abweichen und der Monitor würde alarmieren.

Monitor 3 — DNS-Gesundheit über 1.1.1.1

URL: https://1.1.1.1/cdn-cgi/trace, Schlüsselwort "warp=off". Diese Überprüfung verifiziert, dass Sie Cloudflare vom VPS aus auflösen können — d.h. dass die ausgehende Route des VPS nicht unterbrochen ist.

Alarmkonfiguration

In UptimeRobot, setzen Sie:

  • Primäre E-Mail: Sie werden innerhalb von 30 Sekunden nach Erkennung benachrichtigt
  • Telegram-Bot (kostenlos): Push auf Ihr Telefon auch ohne E-Mail
  • Schwelle: "Alarm nach 2 fehlgeschlagenen Überprüfungen", um Netzwerk-Fehlalarme zu vermeiden

In der Praxis alarmiert dieses Setup Sie hauptsächlich bei echten Ereignissen — einem geplanten Contabo-Wartungsfenster oder einem Dienstabsturz (zum Beispiel Caddy, das bei einer Zertifikatserneuerung fehlschlägt). Mit der "2 fehlgeschlagene Überprüfungen"-Schwelle bleiben Netzwerk-Fehlalarme selten.

Gesamtkosten: €0. UptimeRobot kostenlos + Cloudflare Workers kostenlos + Caddy kostenlos.

SSH-Absicherung mit fail2ban + nur Schlüssel-Authentifizierung

Der anfängliche Bootstrap deaktiviert das SSH-Passwort, aber in der Produktion sollten Sie weiter gehen. Hier ist die Absicherung, die auf jeden Contabo VPS angewendet werden sollte, motiviert durch das ständige automatisierte SSH-Scanning, das jeder internetfähige Host erhält (Bots scannen permanent Hosting-IP-Bereiche, einschließlich Contabo).

Schritt 1 — Benutzerdefinierter SSH-Port

Das Ändern des SSH-Ports ist keine "echte" Sicherheit (Sicherheit durch Verschleierung), aber es reduziert die Logs um 95%. Bots scannen zuerst Port 22.

sudo sed -i 's/^#Port 22/Port 2289/' /etc/ssh/sshd_config
sudo ufw delete allow 22/tcp
sudo ufw allow 2289/tcp
sudo systemctl restart ssh
# Überprüfen Sie von einem separaten Terminal, BEVOR Sie das erste schließen:
# ssh -p 2289 ericg@YOUR_IP

⚠ Halten Sie das alte Terminal offen, bis Sie bestätigt haben, dass die Verbindung über den neuen Port funktioniert. Andernfalls sperren Sie sich aus.

Schritt 2 — Benutzerdefiniertes fail2ban SSH-Gefängnis

fail2ban überwacht standardmäßig Port 22. Anpassen:

sudo tee /etc/fail2ban/jail.d/sshd-custom.local > /dev/null <<EOF
[sshd]
enabled = true
port = 2289
maxretry = 3
findtime = 600
bantime = 86400
EOF
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

Richtlinie: 3 Fehler in 10 Minuten → 24h-Sperre. Strenger als der Standard (5 Fehler / 1h-Sperre), da wir sowieso keine Passwörter zulassen — ein Authentifizierungsfehler = ein Bot.

Schritt 3 — fail2ban-Quote prüfen

Das typische SSH-Gefängnis sperrt 30-80 IPs/Tag auf Contabo Nürnberg. Um zu überprüfen, was passiert:

sudo fail2ban-client status sshd
# Derzeit gesperrte IPs: 47
# Gesperrte IP-Liste: 185.x.x.x 91.x.x.x ...
sudo zcat /var/log/fail2ban.log* | grep "Ban " | wc -l
# Gesamte Sperren seit Beginn

Wenn Sie >200 Sperren/Tag sehen, können Sie bantime = 604800 (1 Woche) verschärfen, um die IO-Last auf dem Server zu begrenzen.

Schritt 4 — Ed25519 SSH-Schlüssel mit Passphrase

Wenn Sie Ihren Ed25519-Schlüssel auf dem Laptop noch nicht generiert haben, ist jetzt die Zeit:

# Auf Ihrem Laptop
ssh-keygen -t ed25519 -C "ericg@laptop-2026" -f ~/.ssh/id_ed25519_vpn
# Wählen Sie eine starke Passphrase (einmal/Tag über ssh-agent eingegeben)
ssh-add -t 10800 ~/.ssh/id_ed25519_vpn  # vergisst es nach 3h

Ed25519 > RSA 4096: schnellere Signaturen, kürzere Schlüssel, Stand der Technik im Jahr 2026. Jeder Ubuntu 24.04 Contabo VPS unterstützt Ed25519 nativ.

Schritt 5 — ChallengeResponseAuthentication deaktivieren

Stellen Sie sicher, dass diese Zeilen in /etc/ssh/sshd_config enthalten sind:

PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
KbdInteractiveAuthentication no
UsePAM yes
AuthenticationMethods publickey

Mit AuthenticationMethods publickey, selbst wenn ein 0-Day-CVE einem Angreifer erlaubt, PAM zu umgehen, benötigen sie immer noch den Schlüssel. Gürtel und Hosenträger.

Nach diesen 5 Schritten werden die meisten automatisierten SSH-Brute-Force-Versuche an der Firewall blockiert und der Rest kann sich nie authentifizieren (nur Schlüssel-Login). Keiner gelingt. Sie können beruhigt schlafen.

Monatliche Kosten: Contabo VPS S vs NordVPN jährlich

Ehrliche 5-Jahres-Berechnung:

LösungJahr 1Jahr 2Jahr 3Jahr 4Jahr 5Gesamt
NordVPN 2 Jahre + Verlängerungen€71,76€0€156€156€156€539,76
Contabo VPS S Cloud 24 Monate × 2€59,76€59,76€59,76€59,76€59,76€298,80

Ersparnis: €241 über 5 Jahre (45%). Bonus: Sie können Ihren Bitwarden, Nextcloud, Umami, was auch immer Sie wollen, hosten.

Ehrliche Selbsthost-Beschränkungen

Der Vollständigkeit halber:

  • Netflix US-Streaming, BBC iPlayer, etc.: funktioniert fast nie. Netflix erkennt Rechenzentrums-ASNs (Contabo ASN 51167) und zeigt Ihnen den lokalen Katalog. Für Streaming behalten Sie ein NordVPN 1 Jahr als Ergänzung.
  • DPI-Umgehung Iran/China: WireGuard auf Port 51820/udp im Klartext wird von fortschrittlichem DPI erkannt. Für diese Fälle wechseln Sie zu V2Ray VMess/VLESS mit REALITY auf demselben Contabo VPS — dieselbe Hardware, anderer Protokollstapel, 2026 vom GFW nicht erkennbar.
  • Kein Chat-Support: Contabo antwortet per E-Mail innerhalb von 24-48 Stunden. Wenn Sie Live-Chat wünschen, schauen Sie sich Hetzner Cloud an (~2× der Preis, FR/DE/EN-Chat-Support).
  • Sie sind der Admin: Wenn der VPS abstürzt, debuggen Sie. Das Gegenteil eines verwalteten Dienstes.

Weiterführende Lektüre

Artikel veröffentlicht am 2026-06-02, zuletzt aktualisiert am 2026-06-03 (hinzugefügt: idempotentes Ansible-Playbook, kostenloses 3-Endpunkt-UptimeRobot-Monitoring, fail2ban + Ed25519 SSH-Absicherung). Bootstrap-Skript zuletzt überprüft auf Ubuntu 24.04 LTS am 2026-06-03. Wenn das Verfahren bei Ihnen nicht funktioniert, öffnen Sie ein Issue auf unserem GitHub oder senden Sie eine E-Mail an contact@vpnsmith.com.

★ Nürnberger DSGVO-Rechenzentrum · ✓ Dedizierte IPv4 inklusive · 200+ Mbps garantiert

Self-host your VPN on your own VPS → ContaboFull root access · public IPv4 · pick your region