Zum Inhalt
Bytearium

Keine Werbung und keine Partnerlinks aktiv

Netzwerke

Gameserver hinter CGNAT oder DS-Lite: 5 Wege

Ein Gameserver hinter CGNAT oder DS-Lite ist per IPv4 nicht erreichbar. Fünf Wege von IPv6 bis VPS-Relay, mit UDP-Grenzen und Test je Weg.

Deine Freunde tippen deine Adresse ein, und das Spiel antwortet mit höflichem Nichts. Wahrscheinlich teilt sich dein Anschluss eine IPv4-Adresse mit der halben Nachbarschaft. So kommen trotzdem alle rein.

Kurz gesagt

Ein Gameserver hinter CGNAT oder DS-Lite ist per IPv4 nicht aus dem Internet erreichbar, weil dein Router nie eine eigene öffentliche IPv4-Adresse bekommt. Eine Portfreigabe im Router führt dann ins Leere [1][2]. Fünf Wege darum herum sind realistisch: eine öffentliche IPv4-Adresse beim Anbieter anfragen, IPv6 nutzen, den Server über Tailscale teilen, den Verkehr über einen gemieteten VPS mit WireGuard umleiten oder einen Spiele-Relay-Dienst wie playit.gg verwenden. Welcher passt, hängt davon ab, ob deine Freunde etwas installieren wollen und ob dein Spiel UDP spricht. Cloudflare Tunnel steht nicht auf der Liste, weil seine dokumentierten Diensttypen kein UDP enthalten [27].

Die fünf Wege im Überblick

WegFreunde installieren etwas?UDP-SpielportsHauptgrenze
1. Öffentliche IPv4 vom AnbieterNeinJa, eine Regel je ProtokollAnbieter muss sie liefern, kann extra kosten
2. IPv6NeinJa, eine Regel je ProtokollSpieler und Spiel brauchen IPv6
3. Tailscale-GerätefreigabeJa, Client und KontoLäuft durch den Tunnel, Spiel testenJeder Spieler braucht den Client
4. VPS-Relay mit WireGuardNeinJa, eine Weiterleitung je PortDu mietest und pflegst einen VPS
5. Relay-Dienst (playit.gg)NeinJa, UDP-Tunnel aufgeführtEin Dritter trägt den Verkehr

So funktioniert’s

  1. Warum die Portfreigabe scheitert. CGNAT (Carrier-Grade NAT) heißt: Dein Anbieter steckt viele Kunden hinter eine öffentliche IPv4-Adresse. Der Block 100.64.0.0/10 ist für die Verbindungen zwischen dem NAT des Anbieters und den Routern der Kunden reserviert [6]. DS-Lite (Dual-Stack Lite) kommt auf anderem Weg zum selben Ergebnis: Die FRITZ!Box verpackt deinen IPv4-Verkehr in IPv6 und schickt ihn an ein Gerät des Anbieters namens AFTR, das IPv4-Adressen unter Kunden aufteilt [7]. AVM nennt die Folge klar: Server im Heimnetz sind per IPv4 nicht aus dem Internet erreichbar [2]. Deine Freigabe ist also richtig. Sie sitzt nur hinter einer zweiten Tür, die dir nicht gehört.
  2. Prüfe, welchen Anschluss du hast. Öffne in der FRITZ!Box Internet, Online-Monitor, Verbindungsdetails und lies die Zeilen „Internet, IPv4“ und „Internet, IPv6“. Steht dort keine IPv4-Adresse oder eine aus 10.0.0.0/8, 100.64.0.0/10, 172.16.0.0/12, 192.0.0.0/29 (DS-Lite-Tunnel) oder 192.168.0.0/16, hat die Box keine öffentliche IPv4-Adresse. Jede andere IPv4-Adresse heißt: Sie hat eine [1]. Meldet die Seite Portfreigaben, dass dein Anbieter bestimmte Ports bereitstellt, unterstützt er PCP (Port Control Protocol), und IPv4 funktioniert nur auf genau diesen Ports [1][2].
  3. TCP und UDP verhalten sich im Test unterschiedlich. Minecraft Java Edition lauscht standardmäßig auf TCP-Port 25565, die Bedrock Edition auf UDP-Port 19132 [8]. Ein TCP-Port antwortet auf einen Verbindungsversuch, deshalb kann eine Prüfung offen von geschlossen und gefiltert unterscheiden [9]. Ein UDP-Port bleibt oft stumm, sodass ein Scanner nur „open|filtered“ melden kann [9]. Der verlässliche UDP-Test ist der echte Spiel-Client an einem Anschluss außerhalb deines Zuhauses. Jeder Weg unten endet mit so einem Test.
  4. Teste immer von außen. Nimm ein Handy mit Mobilfunk bei ausgeschaltetem WLAN oder den Anschluss eines Freundes. Ein Test aus dem eigenen Netz belegt eine Portfreigabe nicht zuverlässig [12]. Testest du über IPv6, öffne vorher test-ipv6.com auf dem Testgerät: Nicht jedes Mobilfunknetz und nicht jeder Hotspot hat IPv6 [1][2].

Weg 1: Öffentliche IPv4-Adresse beim Anbieter anfragen

Das ist die sauberste Lösung. Die klassische Portfreigabe funktioniert wieder, und niemand muss etwas installieren. Du brauchst einen Anschluss mit echtem Dual-Stack: IPv4 und IPv6 nebeneinander, mit öffentlicher IPv4-Adresse am Router. Ob dein Anbieter das anbietet und zu welchem Preis, unterscheidet sich je Anbieter und Tarif. Eine Anleitung schreibt, es koste oft einen kleinen monatlichen Aufpreis oder sei an einen höheren Tarif gekoppelt [24]. Ein Forenbeitrag vom 22. Mai 2025 berichtet, ein Kundenservice habe kostenlos eine öffentliche IPv4-Adresse dazugebucht [23]. Wir nennen keinen Anbieter und keinen Preis, weil wir für beides keine aktuelle Quelle haben (unbelegt, Stand 25.10.2026). Lies nach der Umstellung den Online-Monitor erneut und vergleiche mit den Bereichen oben [1]. Lege dann die Regel an: Internet, Freigaben, Portfreigaben, Gerät für Freigaben hinzufügen, Neue Freigabe, „Andere Anwendung“, TCP oder UDP wählen und den Port eintragen. Ein Spiel, das beides nutzt, bekommt eine Regel je Protokoll [3]. Hat der Server eine eigene Firewall, öffne den Port auch dort [3]. Eine MyFRITZ!-Adresse hält die Box auffindbar, wenn sich die IPv4-Adresse ändert [3]. UDP ist auf diesem Weg kein Problem. Test: einen TCP-Port von einem Rechner außerhalb deines Netzes mit nc -zv <deine-IPv4> 25565 [11], einen UDP-Port mit dem echten Client.

Weg 2: IPv6 nutzen

Ein DS-Lite-Anschluss hat immer IPv6, weil der IPv4-Tunnel darüber läuft [7]. Ein CGNAT-Anschluss muss das nicht; AVM führt einen Anschluss mit IPv6 und IPv4 über CGNAT als über IPv6 erreichbar [1]. Jedes Gerät bekommt eine eigene, weltweit gültige Adresse. Die Firewall der FRITZ!Box blockiert eingehende Verbindungen, bis du für ein Gerät einen Port öffnest [4][12]. Prüfe IPv6 mit test-ipv6.com auf einem Gerät zu Hause [1]. Lies auf dem Server die dauerhafte globale Adresse mit ip -6 addr show scope global -temporary aus, das die wechselnden Privacy-Adressen ausblendet [13]. Öffne dann Internet, Freigaben, Portfreigaben, füge den Server hinzu und lege eine Freigabe mit IPv6-Zugriff, Protokoll und Port an. Prüfe, dass die Interface-ID in der Regel zur echten Adresse des Servers passt [12]. Nutze nicht die Option Exposed Host: Sie öffnet das ganze Gerät, und AVM sagt, man solle sie nur zum Testen verwenden [5]. Zwei Grenzen zählen. Erstens: Laut AVM braucht eine IPv6-Verbindung zu deinem Zuhause IPv6 auf beiden Seiten, und das ist nicht in jedem Mobilfunknetz und Hotspot der Fall [2]. Zweitens: Das Spiel muss auf IPv6 lauschen und der Client es nutzen. Bedrock-Server haben eine eigene Einstellung für den IPv6-Port, standardmäßig 19133 [14]. Bei anderen Spielen schau in die Dokumentation; Anbieterforen berichten von Diensten, die nur IPv4 sprechen [23]. Dein Anbieter kann außerdem das IPv6-Präfix ändern, nutze deshalb einen Dynamic-DNS-Namen mit AAAA-Eintrag [12]. Test: von einem IPv6-fähigen Anschluss außerhalb nc -6 -zv <IPv6-Adresse> 25565 für TCP, für UDP der echte Client.

Weg 3: Den Server über Tailscale teilen

Tailscale baut einen verschlüsselten Tunnel zwischen Geräten. Dein Server verbindet sich nach außen, CGNAT spielt deshalb keine Rolle. Mit der Geräte-Freigabe lädst du einen Freund nur auf diese eine Maschine ein, ohne sie ins öffentliche Internet zu stellen [10]. Freigegebene Maschinen sind in Quarantäne: Sie können Verbindungen beantworten, aber keine eigenen starten [10]. Die Freigabe gibt es in allen Tarifen und sie erhöht deine Nutzerzahl nicht [10][15]. Jeder Freund braucht ein Tailscale-Konto und den Client und verbindet sich dann mit der Tailscale-Adresse oder dem Namen des Servers. Verbindungen starten über Relay-Server und versuchen dann, auf eine direkte UDP-Verbindung zu wechseln; relayte sind langsamer, und tailscale status sowie tailscale ping zeigen, welche du bekommen hast [16]. Der kostenlose Personal-Tarif umfasst bis zu 6 Nutzer und ist für nichtkommerzielle Nutzung gedacht (Preisseite, 25.10.2026) [17]. Die Zugriffsregeln von Tailscale arbeiten je Adresse und Port [10]; ob die UDP-Ports deines Spiels durchkommen, solltest du testen, denn eine Spieleliste haben wir in der Dokumentation nicht gefunden. Die Grenze ist der Client: Manche Plattformen, besonders Konsolen, lassen vielleicht keine Installation zu, und eine Quelle dazu haben wir nicht gefunden. Nicht genutzte Einladungslinks verfallen nach 30 Tagen [10]. Funnel ist kein Ersatz: Er bedient nur TLS-verschlüsselte Verbindungen auf den Ports 443, 8443 und 10000 [18]. Test: Der Freund führt tailscale ping <Servername> aus und tritt dann bei.

Weg 4: Über einen VPS mit WireGuard umleiten

Du mietest einen kleinen VPS mit öffentlicher IPv4-Adresse. Dein Heimserver baut einen WireGuard-Tunnel dorthin auf, und der VPS leitet die Spielports in den Tunnel weiter. Ausgehende Verbindungen funktionieren hinter CGNAT [24], und das Persistent Keepalive von WireGuard hält die NAT-Zuordnung offen [19]. Freunde installieren nichts und verbinden sich mit der Adresse des VPS. TCP und UDP funktionieren beide (unsere Einschätzung: Destination-NAT-Regeln gibt es für beide Protokolle [20]). Die Kosten sind eine monatliche VPS-Rechnung (hier keine Preise, unbelegt), ein zusätzlicher Netzwerksprung und Pflegeaufwand. Zwei Nebenwirkungen: Mit Masquerading im Tunnel sieht der Gameserver die Tunneladresse des VPS statt der Adresse jedes Spielers, sodass IP-Sperren und Limits je IP nicht mehr greifen (unsere Einschätzung). Und hat der VPS eine Firewall des Anbieters, muss sie den Spielport und den WireGuard-Port erlauben, denn solche Firewalls blockieren eingehenden Verkehr standardmäßig [21][22]. Eine vollständige Konfiguration folgt im Beispiel unten. Test: sudo wg show wg0 latest-handshakes zeigt auf beiden Seiten eine Handshake-Zeit [32], ein TCP-Test von außen wie bei Weg 1, für UDP der echte Client.

Weg 5: Einen Spiele-Relay-Dienst wie playit.gg nutzen

playit.gg lässt auf der Maschine mit deinem Server einen Agenten laufen. Der Agent verbindet sich nach außen, Spieler verbinden sich mit einer Adresse auf den Servern von playit, und der Verkehr läuft durch die Verbindung des Agenten zu deinem Server [25]. Der kostenlose Tarif führt Minecraft Java und Bedrock, Palworld, Valheim und eigene UDP-Tunnel auf [25]. Kostenlose Tunnel nutzen globales Anycast-Routing, und der Anbieter weist darauf hin, dass ein Spieler aus Nordamerika über Singapur geleitet werden kann; regionale Tunnel sind eine Premium-Funktion, ebenso die Erhöhung der Portzahl von 4 auf 16 [26]. Premium kostet laut Website am 25.10.2026 3 US-Dollar im Monat [25]. Der Haken sind Vertrauen und Abhängigkeit: Ein Dritter trägt jedes Paket, und deine Gruppe hängt an seinem Dienst. Andere Relay-Dienste haben wir nicht getestet und bekommen von keinem eine Provision. Test: Tritt mit einem Spiel-Client von außerhalb deines Netzes bei.

Was für UDP nicht funktioniert

Cloudflare Tunnel veröffentlicht Hostnamen für HTTP, HTTPS, Unix-Sockets, TCP, SSH, RDP und SMB; UDP gehört nicht zu den dokumentierten Diensttypen, und Nicht-HTTP-Dienste brauchen cloudflared auf jedem Client [27]. Cloudflares Produkt für TCP und UDP heißt Spectrum. Laut Tariftabelle ist es im Free-Tarif nicht verfügbar und in Pro und Business ein kostenpflichtiges Add-on, UDP-Anwendungen sind nur im Enterprise-Tarif ein kostenpflichtiges Add-on, und eine einzelne Minecraft-Anwendung ist ab Pro erlaubt [28]. Spectrum zusammen mit Tunnel funktioniert nur für HTTP- und HTTPS-Anwendungen, und Bedrock wird nicht unterstützt [29]. Nichts davon löst also einen Bedrock-Server hinter CGNAT.

Ein Homelab-Beispiel

Welchen Anschlusstyp das Bytearium-Homelab nutzt, haben wir nicht erfasst (Stand 25.10.2026), deshalb ist das ein allgemeines Beispiel für dein eigenes Setup und kein Bericht über unseres. Nimm einen Minecraft-Server mit Java auf TCP 25565 und Bedrock auf UDP 19132 [8] und Weg 4. Erzeuge zuerst auf beiden Maschinen ein Schlüsselpaar [19]:

umask 077
wg genkey | tee privatekey | wg pubkey > publickey

Aktiviere auf dem VPS die Paketweiterleitung [30]:

sudo sysctl -w net.ipv4.ip_forward=1

Die Einstellung geht beim Neustart verloren. Damit sie bleibt, schreibe die Zeile net.ipv4.ip_forward=1 in eine Datei unter /etc/sysctl.d/, etwa /etc/sysctl.d/99-forward.conf, die beim Booten gelesen wird [33]. Schreibe dann /etc/wireguard/wg0.conf auf dem VPS. Ersetze eth0 durch den Namen der öffentlichen Schnittstelle des VPS (zeigt ip route show default):

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <privater Schlüssel des VPS>
PostUp = iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25565 -j DNAT --to-destination 10.8.0.2:25565
PostUp = iptables -t nat -A PREROUTING -i eth0 -p udp --dport 19132 -j DNAT --to-destination 10.8.0.2:19132
PostUp = iptables -t nat -A POSTROUTING -o %i -j MASQUERADE
PostUp = iptables -A FORWARD -i eth0 -o %i -d 10.8.0.2 -j ACCEPT
PostUp = iptables -A FORWARD -i %i -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
PostDown = iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 25565 -j DNAT --to-destination 10.8.0.2:25565
PostDown = iptables -t nat -D PREROUTING -i eth0 -p udp --dport 19132 -j DNAT --to-destination 10.8.0.2:19132
PostDown = iptables -t nat -D POSTROUTING -o %i -j MASQUERADE
PostDown = iptables -D FORWARD -i eth0 -o %i -d 10.8.0.2 -j ACCEPT
PostDown = iptables -D FORWARD -i %i -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

[Peer]
PublicKey = <öffentlicher Schlüssel des Heimservers>
AllowedIPs = 10.8.0.2/32

Die Felder PostUp und PostDown führen Befehle aus, wenn die Schnittstelle hoch- und heruntergefahren wird [31]. Die DNAT- und Masquerade-Regeln folgen dem Destination-NAT-Muster der nftables-Dokumentation, hier in iptables-Syntax geschrieben [20]. Auf dem Heimserver sieht /etc/wireguard/wg0.conf so aus. Das Keepalive von 25 Sekunden ist der Wert, den WireGuard als sinnvoll für viele verschiedene Firewalls nennt [19]:

[Interface]
Address = 10.8.0.2/24
PrivateKey = <privater Schlüssel des Heimservers>

[Peer]
PublicKey = <öffentlicher Schlüssel des VPS>
Endpoint = <öffentliche IP des VPS>:51820
AllowedIPs = 10.8.0.1/32
PersistentKeepalive = 25

Fahre den Tunnel auf beiden Maschinen mit sudo wg-quick up wg0 hoch [31] und richte den Start beim Booten so ein, wie deine Distribution es beschreibt. Erlaube in der VPS-Firewall UDP 51820, TCP 25565 und UDP 19132. Teste dann mit einem Handy im Mobilfunk: Tritt dem Java-Server über die VPS-Adresse bei und dem Bedrock-Server mit der VPS-Adresse und Port 19132.

Prüfliste

  • Lies den Online-Monitor und notiere, ob du eine öffentliche IPv4-Adresse, eine IPv6-Adresse oder keines von beiden hast.
  • Frage deinen Anbieter, was eine öffentliche IPv4-Adresse kostet, bevor du etwas anderes aufbaust.
  • Prüfe test-ipv6.com auf dem Testgerät, bevor du dich auf IPv6 verlässt.
  • Lege je Protokoll und Port eine Portfreigabe an und nutze für ein Spiel nie die Option Exposed Host.
  • Teste jedes Setup von außerhalb deines Heimnetzes und UDP-Ports mit dem echten Spiel-Client.
  • Entscheide, ob deine Freunde einen Client installieren, bevor du dich für Tailscale entscheidest.
  • Erlaube in der VPS-Firewall den Spielport und den WireGuard-Port und halte alles andere geschlossen.
  • Beobachte das Serverlog: Nach dem Masquerading erscheint jeder Spieler mit der Tunneladresse.
  • Lies die Bedingungen deines VPS- und Relay-Anbieters, bevor du einen öffentlichen Gameserver darüber leitest.

Primärquellen

Diese Quellen sind die Grundlage der Seite. Das heißt nicht, dass jede Aussage einzeln nachgeprüft wurde; ob ein Prüfbeleg vorliegt, steht oben unter „Stand“. Einordnung und Prüfliste sind unsere eigene Arbeit.

Für diese Fassung liegt noch kein dokumentierter Prüfbeleg vor. Der Text stützt sich auf die genannten Quellen.

Entstehung: Bytearium erstellt diese Seiten mit Unterstützung von KI und verantwortet die Veröffentlichung. KI kann sich irren, deshalb nennen wir Quellen und Prüfstand offen.

  1. FRITZ!Checking accessibility of the FRITZ!Box in the internet
  2. FRITZ!What is DS-Lite and how does it work?
  3. FRITZ!Configuring static port sharing in the FRITZ!Box
  4. AVMFRITZ!Box Hilfe: IPv6-Freigaben
  5. FRITZ!Setting up an exposed host in the FRITZ!Box
  6. J. Weil et al.RFC 6598: IANA-Reserved IPv4 Prefix for Shared Address Space
  7. A. Durand et al.RFC 6333: Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion
  8. Minecraft WikiServer
  9. Nmap projectPort Scanning Basics
  10. TailscaleShare your machines with other users
  11. MicrosoftTroubleshoot connectivity issues by using Uncomplicated Firewall (UFW) in Azure Ubuntu VMs
  12. Fiber Network WUGFRITZ!Box Anleitung – Portfreigabe über IPv6
  13. Linux man-pagesip-address(8)
  14. Minecraft Wikiserver.properties
  15. TailscaleInviting users vs sharing a device
  16. TailscaleConnection types
  17. TailscalePricing
  18. TailscaleTailscale Funnel
  19. WireGuard projectQuick Start
  20. nftables wikiPerforming Network Address Translation (NAT)
  21. ContaboFirewall
  22. HetznerFirewalls FAQ
  23. ComputerBase forumPortfreigabe bei Fritzbox 6660 Cable (DS-Lite) (Vodafone)
  24. router-tipps.deCGNAT verhindert Portfreigabe: umgehen
  25. playit.ggMake your game server public
  26. playit.ggPlayit Premium
  27. CloudflareTunnel routing, supported protocols
  28. CloudflareSpectrum, Protocols per plan
  29. CloudflareSpectrum, Limitations
  30. Linux kernel documentationIP Sysctl
  31. Linux man-pageswg-quick(8)
  32. Linux man-pageswg(8)
  33. Linux man-pagessysctl.d(5)

Auf dieser Seite gibt es keine Werbung und keine Partnerlinks.