Alle Ressourcen · Produktivität

Eigenes VPN bauen: kostenloser Cloud-Server in unter einer Stunde

Ein eigener VPN-Server bei Oracle Cloud kostet dauerhaft nichts und schützt deine Verbindung in fremden WLANs. Jeder Klick und jeder Befehl einzeln erklärt, ohne Vorkenntnisse. Am Ende baust du dir mit Emergent noch die passende Oberfläche dazu.

Oracle Cloud + Emergent Produktivität 7 Prompts zum Kopieren Stand August 2026 5 Aufrufe

Was es kostet und wann es kostenlos bleibt

Oracle hat ein Gratis-Kontingent, das dauerhaft gilt und nicht abläuft: zwei kleine x86-Server, ein ARM-Kontingent von 1.500 Kern-Stunden und 9.000 GB-Stunden pro Monat, 200 GB Speicher und 10 TB ausgehender Datenverkehr im Monat.

Für ein VPN ist die letzte Zahl entscheidend. Ein Film in HD verbraucht grob 3 GB pro Stunde, das Kontingent entspricht also rund 3.300 Stunden HD-Video monatlich. Selbst zu zehnt bleiben rechnerisch über 300 Stunden pro Person.

Das Gratis-Kontingent gilt ausschließlich in deiner Heimatregion, dem einen Rechenzentrum, das du bei der Anmeldung auswählst. Ein zweites Land ist nicht kostenlos, auch nicht nach einem Wechsel auf ein Bezahlkonto: ein ARM-Server mit 1 Kern und 6 GB in einer zweiten Region kostet rund 14 US-Dollar im Monat.

Was damit geht und was nicht

Dein Server steht in einem Rechenzentrum, und manche Anbieter erkennen das an der Adresse.

Funktioniert: Schutz in fremden WLANs, deine Aktivität vor dem Internetanbieter verbergen, als das Land deines Servers erscheinen, und alle Streamingdienste, die Inhalte nach Land sperren, aber keine Rechenzentren aussperren. Dazu zählen CBC Gem, Crunchyroll, Tubi, Apple TV+ und die meisten öffentlich-rechtlichen Mediatheken weltweit.

Funktioniert nicht: Netflix, Disney+, Prime Video und Max. Diese vier lizenzieren Filme pro Land, sind vertraglich zum Sperren verpflichtet und kaufen Listen ein, auf denen jede Rechenzentrums-Adresse steht.

Bei YouTube kann es passieren, dass Videos ohne Anmeldung nicht abspielen. Mit dem Google-Konto anmelden, dann läuft alles normal.

Der Ablauf in Kürze

  1. Konto anlegen auf signup.oraclecloud.com. Kreditkarte ist Pflicht, auch fürs Gratis-Angebot. Vorher jedes VPN ausschalten, sonst lehnt Oracle die Anmeldung ab.
  2. Land wählen (Home Region). Diese Entscheidung ist endgültig und legt fest, als welches Land du erscheinst.
  3. Server anlegen: Ubuntu 22.04, Shape VM.Standard.A1.Flex mit 1 Kern und 6 GB. Bei Out of host capacity auf VM.Standard.E2.1.Micro wechseln.
  4. SSH-Schlüssel herunterladen. Du bekommst ihn nur ein einziges Mal.
  5. Port freigeben: Networking, dann Virtual cloud networks, dein Netzwerk, Security Lists, Add Ingress Rules: Quelle 0.0.0.0/0, Protokoll UDP, Port 51820.
  6. Terminal öffnen, verbinden, WireGuard installieren, Schlüssel erzeugen.
  7. Zwei Dateien schreiben: eine auf dem Server, eine auf deinem Gerät.
  8. Verbinden und prüfen über ipleak.net.

Die FORWARD-Regel, an der die meisten scheitern

Die drei PostUp-Zeilen der Serverdatei beginnen mit -I FORWARD 1, nicht mit -A. Der Unterschied ist ein Buchstabe und entscheidet über alles: die Ubuntu-Server von Oracle haben am Ende dieser Regelliste einen Eintrag, der jeglichen weitergeleiteten Verkehr blockiert. Mit -A landen deine Regeln dahinter und werden nie erreicht. Der Tunnel verbindet sich dann scheinbar, aber keine einzige Webseite lädt.

Warum MTU 1380

Viele deutsche Anschlüsse, Vodafone Kabel und teilweise Telekom, transportieren IPv4 innerhalb von IPv6 (DS-Lite). Dadurch passen nur etwa 1460 Byte pro Paket. Der sonst übliche Wert 1420 erzeugt zu große Pakete, die stillschweigend verworfen werden. Das Ergebnis ist tückisch: der Tunnel verbindet sich, kleine Anfragen laufen, aber Seiten laden ewig oder gar nicht. MTU = 1380 gehört in beide Dateien, notfalls 1280.

Prüfen, ob wirklich alles stimmt

Bei aktivem Tunnel ipleak.net aufrufen und drei Stellen ansehen:

  • Ganz oben, deine Adresse: dort muss die IP deines Servers stehen und das Land, das du gewählt hast. Steht dort deine deutsche Adresse, ist der Tunnel nicht aktiv.
  • In der Mitte, DNS Addresses: der Name deines Internetanbieters darf hier nicht auftauchen. Tut er es, fehlt in deiner Gerätedatei die Zeile DNS = 1.1.1.1, und dein Anbieter sieht weiterhin jede Seite, die du besuchst.
  • Rechts, der IPv6-Test: „not reachable" ist hier kein Fehler, sondern gewollt. Erscheint stattdessen eine Adresse, die mit 2a00 oder 2003 beginnt, fehlt der Zusatz ::/0 bei AllowedIPs.

Die Oberfläche mit Emergent

Für jedes neue Gerät musst du sonst Schlüssel im Terminal erzeugen und Text zusammenkopieren. Genau das packst du in eine kleine Web-Oberfläche, gebaut mit Emergent, ohne selbst zu programmieren.

Ein Punkt vorweg, der über Erfolg oder Frust entscheidet: eine Website im Browser kann keinen VPN-Tunnel aufbauen. Dafür braucht es Administratorrechte im Betriebssystem. Sagst du das nicht ausdrücklich dazu, baut dir jede KI-Plattform bereitwillig einen schicken „Verbinden"-Knopf, der nichts tut. Deshalb steht dieser Satz gleich im ersten Prompt.

Emergent baut in erster Linie Anwendungen. Stellst du einfach nur eine Frage, kann es passieren, dass es ein Projekt anlegt, statt zu antworten. Deshalb beginnt jeder Prompt mit „Antworte mir direkt hier im Chat, baue keine App". Diesen Satz nicht herauslöschen.

Die Oberfläche bauen lassen

Für jedes neue Gerät musst du sonst Schlüssel im Terminal erzeugen und Text zusammenkopieren. Die drei Oberflächen-Prompts bauen daraus eine kleine Web-Oberfläche in Emergent: Rahmen setzen, bauen lassen, nachprüfen. Der dritte ist der wichtigste und der, den fast alle weglassen.

Eine Website im Browser kann keinen VPN-Tunnel aufbauen, dafür braucht es Administratorrechte im Betriebssystem. Sagst du das nicht ausdrücklich dazu, baut dir jede KI-Plattform bereitwillig einen „Verbinden"-Knopf, der nichts tut. Deshalb steht dieser Satz gleich im ersten Prompt. Die Oberfläche erzeugt Konfigurationen, verbinden tust du danach mit der offiziellen WireGuard-App.

Von der Oberflaeche zum laufenden Tunnel

Die Oberflaeche gibt dir pro Geraet zwei Dinge: die Geraetedatei und einen Peer-Block. Die Geraetedatei gehoert auf dein Geraet, der Peer-Block auf den Server. Erst wenn beide an ihrem Platz sind, kommt eine Verbindung zustande. Emergent selbst fasst deinen Server nie an.

Alle Prompts zum Kopieren

Prompt 01: Die richtige Region wählen
Antworte mir bitte direkt hier im Chat. Baue keine App und lege kein
Projekt an - ich brauche nur eine Einschaetzung.

Ich richte nach einer Anleitung einen eigenen WireGuard-VPN-Server bei
Oracle Cloud ein und muss jetzt die Heimatregion auswaehlen. Diese Wahl
ist endgueltig, und kostenlos ist ausschliesslich diese eine Region.

Meine Situation:
- Ich wohne in: [LAND, STADT EINFÜGEN]
- Ich will das VPN vor allem fuer: [z. B. Sicherheit in fremden WLANs /
  im Ausland als mein Heimatland erscheinen / Zugriff auf mein Heimnetz]
- Videocalls oder Spiele ueber die Verbindung: [ja/nein]

Gib mir genau drei Dinge:
1. Die eine Region, die du empfiehlst - mit dem exakten Namen, wie er
   im Auswahlmenue von Oracle steht, im Format "Germany Central
   (Frankfurt)".
2. Eine Ausweichregion, falls meine erste Wahl ausgebucht ist.
3. In zwei Saetzen: warum diese Region - und was ich mir damit an
   Nachteilen einhandle.

Zwei Regeln fuer deine Antwort:
- Nenne keine konkreten Millisekunden-Werte, wenn du sie nicht sicher
  weisst. Sag stattdessen "nah", "mittel" oder "weit".
- Wenn dir eine Angabe von mir fehlt, frag nach, statt zu raten.
Zusatz-Prompt: den Tunnel Schritt für Schritt aufbauen
Antworte mir bitte direkt hier im Chat. Baue keine App und lege kein
Projekt an.

Begleite mich Schritt fuer Schritt beim Aufbau meines eigenen
WireGuard-VPN-Servers auf einer Oracle-Cloud-Instanz mit Ubuntu 22.04.

Mein Stand: [WAS SCHON STEHT, z. B. "Konto und Server angelegt,
SSH-Schluessel heruntergeladen" oder "noch gar nichts"]
Mein Computer: [WINDOWS ODER MAC]

So arbeitest du mit mir:
- Ein Schritt pro Nachricht, nicht mehr. Warte nach jedem Schritt auf
  meine Antwort.
- Gib mir pro Schritt genau einen Befehl zum Kopieren, dazu einen Satz,
  was er bewirkt, und sag mir, welche Ausgabe ich erwarten soll.
- Ich schicke dir die Ausgabe zurueck. Pruefe sie, bevor es weitergeht.
  Sieht sie falsch aus, sag das und nenne den naechsten Befehl zur
  Eingrenzung, statt einfach fortzufahren.
- Frag mich nie nach einem privaten Schluessel. Nutz Platzhalter wie
  SERVER_PRIVAT, die echten Werte trage ich selbst ein.

Diese Vorgaben sind nicht verhandelbar:
- Tunnelnetz 10.66.1.0/24, der Server ist 10.66.1.1, das erste Geraet
  ist 10.66.1.2.
- WireGuard auf UDP-Port 51820.
- MTU = 1380 in jeder Datei, Server wie Geraete. Nicht 1420: viele
  deutsche Anschluesse fahren DS-Lite, dort werden groessere Pakete
  stillschweigend verworfen.
- Die FORWARD-Regeln mit "-I FORWARD 1" einfuegen, niemals mit "-A".
  Grund: Die Ubuntu-Abbilder von Oracle haben am Ende der FORWARD-Kette
  eine REJECT-Regel. Angehaengte Regeln stehen dahinter und greifen nie.
  Der Tunnel verbindet sich dann, aber keine Webseite laedt.
- Der Port muss zusaetzlich in der Oracle Security List als Ingress-Regel
  offen sein: Quelle 0.0.0.0/0, Protokoll UDP, Port 51820. Erinnere mich
  daran, bevor wir zum ersten Mal testen.

Zum Schluss fuehrst du mich durch die Pruefung auf ipleak.net und sagst
mir, worauf ich bei angezeigter Adresse, DNS-Servern und IPv6 achten muss.

Fang mit Schritt 1 an.
Prompt 02: Konfigurationsdateien erstellen
Antworte mir bitte direkt hier im Chat. Baue keine App und lege kein
Projekt an - ich brauche fertige Textdateien zum Kopieren.

Ich richte einen WireGuard-VPN-Server auf Ubuntu 22.04 bei Oracle Cloud
ein und brauche die Konfigurationsdateien dafuer.

Meine Angaben:
- Name der Netzwerkkarte des Servers: [z. B. ens3]
- Tunnelnetz: 10.66.1.0/24, der Server selbst ist 10.66.1.1
- Anzahl Geraete, die ich anbinden will: [ANZAHL EINFÜGEN]

Diese Vorgaben sind nicht verhandelbar, halte dich exakt daran:
- MTU = 1380 in JEDER Datei, Server wie Geraete.
- Die beiden FORWARD-Regeln mit "-I FORWARD 1" einfuegen, niemals mit
  "-A". Grund: Die Ubuntu-Abbilder von Oracle haben am Ende der
  FORWARD-Kette eine REJECT-Regel. Angehaengte Regeln stehen dahinter
  und greifen nie.
- In jeder Geraetedatei: AllowedIPs = 0.0.0.0/0, ::/0
- In jeder Geraetedatei: DNS = 1.1.1.1
- In jeder Geraetedatei: PersistentKeepalive = 25
- Jedes Geraet bekommt eine eigene Adresse, beginnend bei 10.66.1.2.
- Setz fuer alle Schluessel Platzhalter ein, zum Beispiel
  SERVER_PRIVAT. Erzeuge keine echten Schluessel und frag mich auch
  nicht danach - die trage ich selbst ein.

Ausgabeformat, bitte genau so:
1. Die Serverdatei wg0.conf als ein einziger Codeblock, ohne
   Erklaertext dazwischen.
2. Danach pro Geraet eine eigene Datei als eigener Codeblock, benannt
   geraet1.conf, geraet2.conf und so weiter.
3. Danach eine Tabelle mit drei Spalten: Platzhalter | wo er hingehoert
   | woher ich den Wert bekomme.

Zum Schluss pruefst du deine eigene Ausgabe und bestaetigst mir jeden
dieser vier Punkte einzeln mit Ja oder Nein:
- Steht in jeder einzelnen Datei MTU = 1380?
- Steht in beiden FORWARD-Zeilen "-I FORWARD 1" und nicht "-A"?
- Hat wirklich jedes Geraet eine andere Adresse?
- Gibt es in der Serverdatei fuer jedes Geraet genau einen [Peer]-Block?

Wenn einer der Punkte nicht stimmt, korrigier ihn, bevor du mir
antwortest.
Prompt 03: Fehlersuche mit echten Ausgaben
Antworte mir bitte direkt hier im Chat. Baue keine App und lege kein
Projekt an.

Mein selbst gebauter WireGuard-VPN-Server bei Oracle Cloud (Ubuntu
22.04) funktioniert nicht richtig.

Was genau passiert: [FEHLER BESCHREIBEN - z. B. "verbunden, aber keine
Webseite laedt" oder "es kommt gar keine Verbindung zustande"]

Ausgabe von "sudo wg show":
[HIER EINFÜGEN]

Ausgabe von "sudo iptables -L FORWARD -n --line-numbers":
[HIER EINFÜGEN]

Mein Internetanschluss zu Hause: [z. B. Vodafone Kabel Deutschland]

So ist es eingerichtet: MTU 1380, Tunnelnetz 10.66.1.0/24, WireGuard
auf UDP-Port 51820, Ingress-Regel in Oracle ist angelegt.

Arbeite diese drei Punkte in genau dieser Reihenfolge ab und sag mir
zu jedem klar Ja oder Nein:
1. Zeigt "wg show" einen aktuellen Handshake? Wenn nein, liegt das
   Problem VOR dem Tunnel: Port, Firewall oder ein falscher
   Schluessel. Dann brauchen wir die anderen Punkte gar nicht.
2. Stehen meine ACCEPT-Zeilen in der FORWARD-Kette OBERHALB der
   REJECT-Zeile? Wenn sie darunter stehen, wird weitergeleiteter
   Verkehr verworfen.
3. Steigen bei "wg show" beide Uebertragungswerte oder nur einer?
   Wenn viel gesendet und kaum etwas empfangen wird, deutet das auf
   zu grosse Pakete hin, also auf die MTU.

Nenne mir danach die EINE wahrscheinlichste Ursache und genau einen
Befehl, mit dem ich sie bestaetige.

Wenn dir die Ausgaben dafuer nicht reichen, sag das offen und nenne
mir den naechsten Befehl, dessen Ausgabe du brauchst. Rate nicht.
Prompt 04: Rahmen setzen
Ich möchte mit dir eine Web-Oberfläche bauen, mit der ich die
Konfigurationsdateien für meinen eigenen WireGuard-VPN-Server verwalte.

Wichtig, bevor du irgendetwas baust: Eine Website im Browser kann keinen
VPN-Tunnel aufbauen, dafür braucht es Administratorrechte im Betriebssystem.
Baue deshalb keinen "Verbinden"-Knopf, der so tut, als würde er eine
Verbindung herstellen. Die Oberfläche soll Konfigurationen erzeugen und
verwalten. Verbinden tue ich anschließend mit der offiziellen WireGuard-App.

Stell mir jetzt Fragen, bis du verstanden hast, was ich brauche: wie viele
Geräte, welche Angaben ich schon habe, was auf dem Handy funktionieren muss.
Frag in kleinen Schritten, nicht alles auf einmal. Fang noch nicht an zu bauen.
Prompt 05: Bauauftrag
Danke, jetzt bauen wir. Erstelle eine Web-Oberfläche mit diesen Funktionen:

1. Ich hinterlege einmalig meinen Server: öffentliche IP-Adresse, Port 51820
   und den öffentlichen Schlüssel des Servers.
2. Ich lege Geräte an (Laptop, Handy, Tablet). Jedes Gerät bekommt ein eigenes
   Schlüsselpaar und eine eigene Adresse im Netz 10.66.1.0/24, beginnend
   bei 10.66.1.2.
3. Für jedes Gerät erzeugst du eine Konfiguration in exakt diesem Format:

[Interface]
PrivateKey = privater Schlüssel des Geräts
Address = Adresse/32
DNS = 1.1.1.1
MTU = 1380

[Peer]
PublicKey = öffentlicher Schlüssel des Servers
Endpoint = Server-IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

4. Jede Konfiguration kann ich als .conf-Datei herunterladen und als QR-Code
   anzeigen. Der QR-Code muss exakt den Text der Konfiguration enthalten und
   sonst nichts, weil die WireGuard-App genau diesen Text erwartet.
5. Zusätzlich zeigst du mir pro Gerät den passenden Peer-Block für meine
   Serverdatei mit einem Kopier-Knopf.

Die Schlüssel müssen echte Curve25519-Schlüssel sein, wie WireGuard sie
verlangt: 32 Byte, Base64-kodiert, 44 Zeichen lang.
Prompt 06: Kontrolle
Bevor ich das benutze, prüfe deine eigene Umsetzung und antworte mir ehrlich
auf jeden Punkt einzeln:

1. Sind die erzeugten Schlüssel echte Curve25519-Schlüssel mit 44 Zeichen,
   oder ist es Zufallstext, der nur so aussieht?
2. Gehört zu jedem privaten Schlüssel der passende öffentliche? Erklär mir,
   wie du ihn ableitest.
3. Enthält der QR-Code exakt den Konfigurationstext, ohne zusätzliche Zeichen
   oder Umbrüche?
4. Verlässt irgendein privater Schlüssel mein Gerät, zum Beispiel durch
   Speichern auf einem Server oder Senden an eine Schnittstelle?
5. Gibt es irgendwo einen Knopf oder eine Anzeige, die einen aktiven
   VPN-Schutz behauptet, den die Seite gar nicht herstellen kann?

Wenn einer dieser Punkte nicht sauber ist, sag es mir klar und korrigiere ihn.
Nimm den kompletten Guide mit
Alle Schritte als PDF: zum Speichern, Ausdrucken und offline Nachmachen.
Vollständiges PDF herunterladen (kostenlos)
War dieser Guide hilfreich?
Mehr davon, jede Woche.
Neue Ressourcen, Prompts und Workflows direkt ins Postfach. Kostenlos.
Community beitreten