Alle Ressourcen · Produktivität

Eigenes VPN bauen: mit Emergent und einem kostenlosen Cloud-Server

Codewort: EMERGENT043 Oracle Cloud + Emergent Produktivität 7 Prompts zum Kopieren Stand August 2026 67 Aufrufe

Das baust du

Du baust dir dein eigenes VPN, nur mit Prompts: Emergent baut dir die App mit Länderauswahl und Connect-Knopf, ein kostenloser Cloud-Server bei Oracle wird der Tunnel zwischen dir und dem Internet. Du bekommst den Master Prompt für Emergent, die Befehle für den Server zum Kopieren und die Prüfung auf ipleak.net, mit der du siehst, ob wirklich alles über deinen Server läuft.

0 €Server im Gratis-Kontingent
10 TBDatenvolumen pro Monat
6Prompts plus Befehle
Schritt 1

Emergent-Account anlegen

Zuerst gehst du einfach auf Emergent, erstellst dir einen Account und loggst dich ein.

  1. Öffne emergent.sh im Browser.
  2. Klick auf „Sign up“ und melde dich mit Google, GitHub oder deiner E-Mail-Adresse an.
  3. Du landest im Startbildschirm mit einem großen Eingabefeld. Dort gibst du gleich den Master Prompt ein.
Schritt 2

Master Prompt eingeben

Wann du das nutztDer Startpunkt deiner App. Der Agent fragt dich danach Schritt für Schritt aus.

Jetzt gibst du den Master Prompt ein. Kopiere ihn, füge ihn in das Eingabefeld von Emergent ein und schick ihn ab.

Als Nächstes fängt der Agent an, dir Fragen zu stellen: welchen Standort du möchtest, welche Geräte du verbinden willst und wie die App aussehen soll. Antworte ganz normal in eigenen Worten. Weißt du etwas noch nicht, zum Beispiel die Adresse deines Servers, schreib „kommt später“.

Master Prompt: 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.
Der Knopf "Connect" soll für das gewählte Land die passende Konfiguration
als QR-Code und als .conf-Datei bereitstellen, die ich mit einem Tipp in der
offiziellen WireGuard-App aktiviere. Er soll nicht so tun, als würde die
Webseite selbst eine Verbindung herstellen.

Stell mir jetzt Fragen, bis du verstanden hast, was ich brauche: welchen Standort ich
möchte, wie viele Geräte, wie die App aussehen soll, 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.
Schritt 3

App bauen lassen und prüfen

Wenn der Agent alle Fragen gestellt hat, schickst du den Bauauftrag. Emergent baut dann deine Oberfläche. Das dauert eine Weile, bei mir waren es rund zwei Stunden, in denen Emergent selbstständig gearbeitet hat. Jetzt hast du schon deinen eigenen VPN-Prototyp.

  1. Kopiere den Bauauftrag unten in denselben Emergent-Chat und schick ihn ab.
  2. Wenn Emergent fertig ist, schick die Kontrolle hinterher. Der Agent prüft dann seine eigene Arbeit, vor allem die Schlüssel und den QR-Code.
  3. Sagt Emergent bei einem Punkt „nein“ oder „nicht sauber“, lass es den Punkt korrigieren, bevor du weitermachst.
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.

Kontrolle nach dem Bauen

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.
Schritt 4

Kostenlosen Cloud-Server anlegen

Wann du das nutztDer Server ist der entscheidende Teil. Er wird der Tunnel zwischen dir und dem Internet, mit genau dem Standort, den du willst.

Zu guter Letzt musst du nur noch einen Cloud-Server aufsetzen. Klingt kompliziert, ist aber kinderleicht. Wir nehmen Oracle Cloud, weil das Gratis-Kontingent dort dauerhaft gilt.

  1. Konto anlegen auf signup.oraclecloud.com. Schalte vorher jedes andere VPN aus, sonst lehnt Oracle die Anmeldung oft ab.
  2. Heimatregion wählen (Home Region). Das ist das Land, in dem dein Server steht und als das du später im Internet erscheinst. Die Wahl ist endgültig, und kostenlos ist nur diese eine Region. Unsicher? Frag vorher mit Prompt 01 unten nach.
  3. Server anlegen: Klick oben links auf das Menü (drei Striche), dann Compute, Instances, Create instance.
    • Bei Image auf „Change image“ klicken und Canonical Ubuntu 22.04 wählen.
    • Bei Shape auf „Change shape“, dann „Ampere“ und VM.Standard.A1.Flex mit 1 OCPU (Kern) und 6 GB Speicher.
    • Bei Add SSH keys „Generate a key pair for me“ wählen und auf Save private key klicken. Diese Schlüsseldatei bekommst du nur ein einziges Mal. Leg sie gut ab.
    • Unten auf Create klicken. Nach ein bis zwei Minuten steht der Status auf „Running“. Notiere dir die Public IP address.
  4. Port freigeben: Klick in deiner Instanz auf das verlinkte Subnet, dann auf die Security List (oft „Default Security List“), dann Add Ingress Rules. Trage ein: Source CIDR 0.0.0.0/0, IP Protocol UDP, Destination Port Range 51820. Speichern.
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: [DEIN LAND, DEINE STADT]
- 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.
Schritt 5

WireGuard auf dem Server einrichten

Wann du das nutztEinmalig. Du kopierst drei Befehlsblöcke, den Rest macht der Server.

Verbinden: Klick in der Oracle-Konsole oben rechts auf das Symbol >_ (Cloud Shell). Unten öffnet sich ein Fenster, in das du Befehle eingibst. Lade über das Zahnrad- bzw. Menü-Symbol dieses Fensters mit „Upload“ deine Schlüsseldatei aus Schritt 4 hoch. Dann tippst du, mit deiner Server-IP statt 1.2.3.4 und dem echten Dateinamen:

chmod 600 ssh-key-*.key
ssh -i ssh-key-*.key ubuntu@1.2.3.4

Bei der Frage „Are you sure you want to continue connecting“ tippst du yes und Enter. Jetzt bist du auf deinem Server.

Block 1, WireGuard installieren. Kopieren, mit Rechtsklick und „Einfügen“ ins Fenster setzen, Enter:

sudo apt update && sudo apt install -y wireguard qrencode
sudo -i

Block 2, Server einrichten. Der Block erzeugt die Schlüssel, schreibt die Serverdatei und startet den Tunnel. Am Ende siehst du eine Ausgabe, die mit interface: wg0 beginnt.

cd /etc/wireguard
umask 077
wg genkey | tee server_privat | wg pubkey > server_oeffentlich
wg genkey | tee geraet1_privat | wg pubkey > geraet1_oeffentlich
NIC=$(ip route show default | awk '{print $5}' | head -n1)
cat > wg0.conf <<EOF
[Interface]
Address = 10.66.1.1/24
ListenPort = 51820
PrivateKey = $(cat server_privat)
MTU = 1380
PostUp = iptables -I INPUT 1 -p udp --dport 51820 -j ACCEPT; iptables -I FORWARD 1 -i wg0 -j ACCEPT; iptables -I FORWARD 1 -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o $NIC -j MASQUERADE
PostDown = iptables -D INPUT -p udp --dport 51820 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o $NIC -j MASQUERADE

[Peer]
PublicKey = $(cat geraet1_oeffentlich)
AllowedIPs = 10.66.1.2/32
EOF
echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-wireguard.conf
sysctl --system
systemctl enable --now wg-quick@wg0
wg show

Block 3, Datei für dein erstes Gerät. Er zeigt dir einen QR-Code und darunter denselben Inhalt als Text:

cat > geraet1.conf <<EOF
[Interface]
PrivateKey = $(cat geraet1_privat)
Address = 10.66.1.2/32
DNS = 1.1.1.1
MTU = 1380

[Peer]
PublicKey = $(cat server_oeffentlich)
Endpoint = $(curl -4 -s ifconfig.me):51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
EOF
qrencode -t ansiutf8 < geraet1.conf
cat geraet1.conf

Zwei Einstellungen in Block 2 machen den Unterschied: Die Regeln stehen mit -I ... 1 ganz oben in der Liste, weil die Ubuntu-Server von Oracle am Ende der Liste einen Eintrag haben, der allen weitergeleiteten Verkehr blockiert. Und MTU = 1380 steht in beiden Dateien, weil viele deutsche Anschlüsse (DS-Lite, etwa Vodafone Kabel) größere Pakete stillschweigend verwerfen.

Begleit-Prompt: den Tunnel Schritt für Schritt aufbauen

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 Stellvertreter-Namen 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

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]

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 Stellvertreter-Namen 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: Stellvertreter-Name | 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.
Schritt 6

Server in deiner App eintragen

Jetzt verbindest du deine Emergent-App mit dem Server.

  1. Hol dir den öffentlichen Schlüssel deines Servers. Auf dem Server eingeben:
    cat /etc/wireguard/server_oeffentlich
  2. Trag in deiner App die Server-IP, den Port 51820 und diesen öffentlichen Schlüssel ein. Der öffentliche Schlüssel darf überall stehen. Die Dateien mit „privat“ im Namen zeigst du niemandem und kopierst sie in keinen Chat.
  3. Leg in der App ein neues Gerät an, zum Beispiel „Handy“. Die App gibt dir eine Gerätedatei (QR-Code oder .conf) und einen Peer-Block.
  4. Der Peer-Block gehört auf den Server. Öffne die Serverdatei:
    sudo nano /etc/wireguard/wg0.conf
  5. Geh mit der Pfeiltaste ganz nach unten, mach eine leere Zeile und füge den Peer-Block mit Rechtsklick ein. Speichern mit Strg+O und Enter, schließen mit Strg+X.
  6. Tunnel neu starten. In der Ausgabe muss das neue Gerät als peer auftauchen:
    sudo systemctl restart wg-quick@wg0
    sudo wg show

Erst wenn Gerätedatei und Peer-Block beide an ihrem Platz sind, kommt eine Verbindung zustande.

Schritt 7

Land wählen und verbinden

Das hier ist die UI: Du wählst einfach ein Land aus, klickst auf Connect, und der Traffic läuft über deinen eigenen Server.

  1. Installiere die WireGuard-App auf dem Gerät.
  2. Wähl in deiner Emergent-App das Land und klick auf Connect. Du bekommst die Konfiguration als QR-Code und als Datei.
  3. Handy: In der WireGuard-App auf „+“ tippen, „Von QR-Code erstellen“ und den Code scannen. Einen Namen vergeben, fertig.
  4. Windows oder Mac: In der WireGuard-App „Tunnel aus Datei importieren“ wählen und die .conf-Datei öffnen.
  5. Den Schalter beim Tunnel auf Aktiv stellen.

Damit kannst du Streaming-Inhalte aus anderen Ländern sehen und hast vor allem eine sichere Verbindung, auch im Hotel- oder Café-WLAN.

Schritt 8

Prüfen, ob wirklich alles stimmt

Ruf bei aktivem Tunnel ipleak.net auf und schau auf drei Stellen:

  • Ganz oben, deine Adresse: Dort muss die IP deines Servers stehen und das Land deiner Heimatregion. 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 der Gerätedatei die Zeile DNS = 1.1.1.1.
  • Der IPv6-Test: „not reachable“ ist hier gewollt. Erscheint stattdessen eine Adresse, die mit 2a00 oder 2003 beginnt, fehlt bei AllowedIPs der Zusatz ::/0.

Prompt 03: Fehlersuche mit echten Ausgaben

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":
[DEINE AUSGABE]

Ausgabe von "sudo iptables -L FORWARD -n --line-numbers":
[DEINE AUSGABE]

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.

Häufige Fragen

Ist ein eigenes VPN erlaubt?

Ja, Betrieb und Nutzung eines eigenen VPN sind in Deutschland, Österreich und der Schweiz zulässig. Das Umgehen von Ländersperren kann aber gegen die Nutzungsbedingungen einzelner Dienste verstoßen.

Wie viele Geräte kann ich verbinden?

So viele du willst. Jedes Gerät bekommt eine eigene Adresse (10.66.1.2, 10.66.1.3 und so weiter) und einen eigenen Peer-Block auf dem Server.

Läuft der Server weiter, wenn mein Computer aus ist?

Ja. Der Server steht im Rechenzentrum und startet den Tunnel nach einem Neustart von selbst.

War dieser Guide hilfreich?
Nimm den kompletten Guide mit
Alle Schritte als PDF: zum Speichern, Ausdrucken und offline Nachmachen.
Vollständiges PDF herunterladen (kostenlos)
Lieber direkt austauschen?
In der Community stellst du Fragen und zeigst, was funktioniert hat.
Community beitreten