Wings ist der Pterodactyl-Dienst, der Gameserver in Docker-Containern auf Ihrem Server betreibt. Wir installieren ihn, verbinden ihn mit dem Panel, öffnen die nötigen Ports und erstellen den ersten Server.
Was Sie brauchen
- Ein funktionierendes Pterodactyl Panel mit HTTPS (Anleitung)
- Ein VPS für die Gameserver mit Ubuntu 24.04 oder Debian 13 (es kann derselbe VPS wie das Panel sein)
- Eine Domain für die Node: dieselbe wie das Panel (
panel.example.cz) oder eine eigene (node.example.cz) - Eine SSH-Verbindung als root
- Etwa 60 Minuten
So funktioniert es#
Das Panel ist nur eine Weboberfläche. Die eigentliche Arbeit erledigt Wings auf einer Node (dem Server, auf dem die Spiele laufen). Wings nimmt Anweisungen vom Panel entgegen, lädt Docker-Images herunter, betreibt Gameserver in isolierten Containern, überwacht ihren RAM und ihre Festplatte und kümmert sich um Konsole und Dateien.
Wichtig ist, wer sich wohin verbindet:
| Verbindung | Port | Protokoll | Wer sich verbindet |
|---|---|---|---|
| Wings-API | 8080 | TCP (HTTPS) | Das Panel und der Browser jedes Benutzers (Live-Konsole über Websocket, Datei-Uploads). Deshalb muss die Adresse der Node öffentlich erreichbar sein und ein gültiges Zertifikat haben. |
| SFTP | 2022 | TCP | Benutzer, die Dateien mit einem Programm wie WinSCP oder FileZilla hochladen. |
| Spielports | je nach Spiel, zum Beispiel 25565 | TCP und UDP | Spieler. |
Gameserver erhalten das interne Docker-Netzwerk pterodactyl_nw. Auf dem VPS erscheint eine Netzwerkschnittstelle pterodactyl0 mit der Adresse 172.18.0.1; über sie erreichen Container den Server selbst (das nutzen Sie für den Database Host). Serverdaten liegen in /var/.
Virtualisierung prüfen#
Wings braucht Docker, und Docker braucht vollständige Virtualisierung. StormHost-VPS laufen auf KVM, was funktioniert. Prüfen können Sie es mit:
systemd-detect-virtkvmEin Ergebnis openvz oder lxc würde bedeuten, dass Docker (und damit Wings) höchstwahrscheinlich nicht funktioniert.
Docker installieren#
Installieren Sie Docker aus dem offiziellen Repository von Docker. Jeder Befehl ist in der Anleitung Docker und Docker Compose ausführlich erklärt; hier nur die Schritte:
Ubuntu 24.04
apt update
apt -y install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDebian 13
apt update
apt -y install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginAktivieren Sie Docker dann beim Booten und testen Sie es:
systemctl enable --now docker
docker run --rm hello-worldsystemctl enable --now docker– Docker startet sofort und danach bei jedem Booten des VPS.docker run --rm hello-world– lädt einen Testcontainer herunter und führt ihn aus;--rmlöscht ihn nach dem Ende. Sie sehen den TextHello from Docker!.
Überspringen Sie den Schritt „Enabling Swap“ aus der Dokumentation
Die offizielle Wings-Dokumentation beschreibt eine GRUB-Änderung (swapaccount=1). Sie ist nur bei Kerneln älter als 6.1 nötig. Ubuntu 24.04 und Debian 13 haben neuere Kernel (prüfen mit uname -r), überspringen Sie diesen Schritt also.
Wings herunterladen#
mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
chmod u+x /usr/local/bin/wingsmkdir -p /etc/pterodactyl– ein Verzeichnis für die Wings-Konfiguration.curl -L -o /usr/local/bin/wings "…"– lädt das neueste Wings-Release als Programm/usr/local/bin/wingsherunter.-Lfolgt den Weiterleitungen von GitHub.$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")– wählt die passende Datei für die CPU-Architektur:uname -mgibtx86_64aus (typische Server), wofür der Buildamd64heruntergeladen wird.chmod u+x– erlaubt dem Besitzer (root), die Datei auszuführen.
Prüfung: wings version gibt die Versionsnummer aus.
Domain und Zertifikat für die Node#
Das Panel läuft auf HTTPS, also muss auch Wings HTTPS verwenden. Sonst würde der Browser die Verbindung zur Node blockieren. Das Zertifikat ist an die Domain der Node gebunden (Feld FQDN im Panel).
Derselbe VPS wie das Panel
Läuft Wings auf demselben VPS wie das Panel, verwenden Sie die Domain des Panels (panel.example.cz) als FQDN der Node. Das Zertifikat haben Sie bereits aus der Panel-Installation, und Wings findet es unter /etc/. Nichts weiter zu tun.
Separater VPS für die Node
Erstellen Sie einen
A-Eintrag fürnode.example.czmit der IPv4-Adresse des Node-VPS.Öffnen Sie Port
80(TCP) in der Firewall der Node; Let's Encrypt verwendet ihn zur Prüfung der Domain. Lassen Sie ihn auch danach offen: Jede automatische Zertifikatserneuerung läuft über denselben Port.Installieren Sie Certbot:
apt -y install certbot.Holen Sie das Zertifikat. Auf einem Node-VPS läuft in der Regel kein Webserver, verwenden Sie also den Standalone-Modus, in dem Certbot kurz einen eigenen Server auf Port 80 betreibt:
bash certbot certonly --standalone -d node.example.czcertonly– holt nur das Zertifikat.--standalone– Prüfung über den temporären Server von Certbot auf Port 80 (der Port darf nicht von einem anderen Programm belegt sein).-d node.example.cz– die Domain der Node.
Läuft auf dem Node-VPS Nginx, verwenden Sie --nginx statt --standalone.
Nach einer Zertifikatserneuerung muss Wings neu gestartet werden, sonst verwendet es weiterhin das alte Zertifikat. Erstellen Sie einen Deploy-Hook (ein Skript, das Certbot nach jeder erfolgreichen Erneuerung ausführt):
cat > /etc/letsencrypt/renewal-hooks/deploy/restart-wings.sh <<'EOF'
#!/bin/sh
systemctl restart wings
EOF
chmod 755 /etc/letsencrypt/renewal-hooks/deploy/restart-wings.sh- Certbot führt Dateien im Verzeichnis
renewal-hooks/deploynach jeder Zertifikatserneuerung aus. systemctl restart wings– startet Wings neu. Laufende Gameserver werden dadurch nicht gestoppt; Wings verbindet sich nach dem Start wieder mit ihnen.chmod 755– das Skript muss ausführbar sein.
Die Domain der Node darf nicht über den Cloudflare-Proxy laufen
Verwalten Sie DNS in Cloudflare, lassen Sie den Eintrag der Node-Domain auf DNS only (graue Wolke). Auf Port 8080 leitet Cloudflare nur unverschlüsseltes HTTP weiter, und SFTP oder Spielports lässt es gar nicht durch seinen Proxy. Verwendet die Node dieselbe Domain wie das Panel, lassen Sie die gesamte Panel-Domain auf der grauen Wolke oder verwenden Sie eine eigene Subdomain für die Node.
Location#
Jede Node gehört zu einer Location. Eine Location ist nur eine Bezeichnung zum Sortieren von Nodes (zum Beispiel nach Rechenzentrum).
- Öffnen Sie im Panel den Admin-Bereich (Zahnradsymbol oben rechts) und klicken Sie links auf Locations.
- Klicken Sie auf Create New.
- Füllen Sie Short Code aus, eine kurze Kennung mit 1–60 Zeichen, zum Beispiel
cz-praha. - Füllen Sie Description aus, eine Beschreibung der Location für Sie und andere Admins, zum Beispiel
VPS in Prag. - Klicken Sie auf Create.
Die Node im Panel#
Klicken Sie im Admin-Bereich links auf Nodes und dann auf Create New. Füllen Sie das Formular gemäß der Tabelle aus:
| Feld | Was eintragen | Warum, und wann anders wählen |
|---|---|---|
| Name | Zum Beispiel node-praha-1 | Ein Name für Sie. Erlaubt sind Buchstaben ohne Umlaute, Ziffern, _, -, . und Leerzeichen. |
| Description | Optional | Eine Notiz für Sie. |
| Location | Die Location aus dem vorherigen Abschnitt | Nur eine Kategorie. |
| Node Visibility | Public | Private verhindert, dass Server automatisch auf der Node platziert werden (Auto-Deploy). Behalten Sie Public für den normalen Gebrauch. |
| FQDN | panel.example.cz (derselbe VPS) oder node.example.cz | Die Adresse, unter der Panel und Browser Wings finden. Es muss eine Domain sein, keine IP-Adresse, wenn Sie SSL verwenden. |
| Communicate Over SSL | Use SSL Connection | Läuft das Panel auf HTTPS, können Sie nichts anderes wählen. |
| Behind Proxy | Not Behind Proxy | Behind Proxy nur, wenn Wings hinter einem Proxy sitzt, der TLS selbst terminiert. Wings sucht dann kein Zertifikat. In dieser Anleitung nicht der Fall. |
| Daemon Server File Directory | /var/ | Wo Gameserver-Daten gespeichert werden. Nur ändern, wenn Sie mit einer zweiten Festplatte arbeiten. |
| Total Memory (MiB) | Der RAM des VPS minus einer Reserve | Wie viel RAM das Panel an Gameserver vergeben darf. Auf einem 8-GB-VPS, der auch das Panel betreibt, tragen Sie zum Beispiel 6144 ein (6 GB). 1 GB = 1024 MiB. |
| Memory Over-Allocation (%) | 0 | Um wie viel Prozent der gesamte RAM der Server Total Memory überschreiten darf. 0 = nie, -1 = schaltet die Prüfung aus. Überbuchung von RAM führt zu Serverabstürzen. |
| Total Disk Space (MiB) | Freier Speicherplatz minus einer Reserve | Tragen Sie zum Beispiel bei einer 100-GB-Festplatte 81920 ein (80 GB). Lassen Sie den Rest für System, Docker-Images und Backups. |
| Disk Over-Allocation (%) | 0 | Wie beim Arbeitsspeicher. |
| Daemon Port | 8080 | Der Port der Wings-API. Nur ändern, wenn er mit einem anderen Programm kollidiert. |
| Daemon SFTP Port | 2022 | Der SFTP-Port für Gameserver-Dateien. Tragen Sie nie 22 ein; der gehört dem SSH-Server des VPS. |
Klicken Sie auf Create Node. Das Panel öffnet die Details der Node.
Wie viel RAM Sie dem System lassen sollten
Den gesamten RAM des VPS in MiB finden Sie mit free -m (Zeile Mem:, Spalte total). System, Docker und Wings brauchen einige hundert MiB. Läuft auf dem VPS auch das Panel mit MariaDB und Redis, lassen Sie ihnen mindestens 1–2 GB.
Wings konfigurieren#
Öffnen Sie in den Details der Node die Registerkarte Configuration. Die Konfiguration bekommen Sie auf eine von zwei Arten auf den VPS.
Methode A, automatisch: Klicken Sie auf Generate Token. Das Panel zeigt einen Befehl, der mit cd /etc/pterodactyl && sudo wings configure --panel-url https://panel.example.cz --token … beginnt. Kopieren Sie ihn vollständig und führen Sie ihn auf dem Node-VPS aus. Wings lädt seine Konfiguration vom Panel herunter.
Methode B, manuell:
Öffnen Sie auf dem VPS die Datei:
bash nano /etc/pterodactyl/config.ymlFügen Sie den gesamten Block aus der Registerkarte Configuration ein, speichern Sie (Strg+O, Eingabe) und schließen Sie (Strg+X).
Was in der Konfiguration steht:
| Schlüssel | Was er bedeutet |
|---|---|
uuid | Die eindeutige Kennung der Node im Panel. |
token_id, token | Der geheime Schlüssel, mit dem sich Wings und Panel gegenseitig authentifizieren. Wer ihn hat, kontrolliert die Node. Teilen Sie ihn nicht und posten Sie ihn nicht in Chats oder Foren. |
api.host | 0.0.0.0 = die API lauscht auf allen Adressen des VPS. |
api.port | Der Daemon Port aus dem Formular (8080). |
api.ssl.enabled | true, wenn die Node SSL verwendet und nicht hinter einem Proxy ist. |
api.ssl.cert, api.ssl.key | Der Zertifikatspfad anhand des FQDN, zum Beispiel /etc/. |
api.upload_limit | Die größte Datei (in MB), die über den Dateimanager des Panels hochgeladen werden kann. Sie ändern sie in den Node-Einstellungen. |
system.data | Das Verzeichnis mit Serverdaten. |
system.sftp.bind_port | Der SFTP-Port (2022). |
remote | Die Panel-Adresse, an die Wings berichtet. |
Beim ersten Start ergänzt Wings in der Datei weitere Standardwerte, zum Beispiel die Einstellungen des Docker-Netzwerks (docker.network, Adresse 172.18.0.1) und DNS-Server für Container (1.1.1.1, 1.0.0.1).
Erster Start im Debug-Modus#
Bevor Sie es im Hintergrund laufen lassen, probieren Sie Wings von Hand, damit Sie eventuelle Fehler sehen:
wings --debug--debug– ein ausführliches Log von allem, was Wings tut.
Beim ersten Start erstellt Wings das Docker-Netzwerk (creating missing pterodactyl0 interface…) und meldet, dass es lauscht (configuring internal webserver). Öffnen Sie dann im Panel Nodes. Die Node zeigt ein grünes pulsierendes Herz = das Panel hat sich mit Wings verbunden. Ein rotes Herz bedeutet, dass die Verbindung nicht funktioniert (siehe Fehlerbehebung).
Sobald das Herz grün ist, stoppen Sie Wings mit Strg+C.
Wings als Dienst#
Damit Wings dauerhaft läuft und nach einem Neustart des VPS automatisch startet, erstellen Sie einen systemd-Dienst:
nano /etc/systemd/system/wings.service[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service
[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.target| Zeile | Was sie tut |
|---|---|
After=docker.service | Wings startet erst nach Docker. |
Requires=docker.service | Wings startet nicht ohne laufendes Docker. |
PartOf=docker.service | Ein Neustart oder Stopp von Docker überträgt sich auf Wings. |
User=root | Wings braucht Root-Rechte (es steuert Docker und die Serverdateien). |
WorkingDirectory= | Das Arbeitsverzeichnis mit config.yml. |
LimitNOFILE=4096 | Wie viele Dateien und Verbindungen Wings gleichzeitig offen haben darf. |
PIDFile= | Wohin Wings seine Prozess-ID schreibt. |
ExecStart= | Startet das Programm (ohne --debug). |
Restart=on-failure | Wings startet nach einem Absturz erneut. |
StartLimitInterval=180, StartLimitBurst=30 | Schutz vor einer endlosen Neustartschleife: höchstens 30 Starts in 180 Sekunden. |
RestartSec=5s | Wartet 5 Sekunden vor dem Neustart. |
WantedBy= | Startet beim Booten des VPS. |
Aktivieren und starten Sie den Dienst:
systemctl enable --now wings
systemctl status wingsSie sehen Active: active (running). Das Herz der Node im Panel bleibt grün.
Allocations#
Eine Allocation ist eine Kombination aus IP-Adresse und Port, die ein Gameserver erhält. Jeder Server braucht mindestens eine (die primäre); weitere können Sie für RCON, Query oder Plugins hinzufügen.
Ermitteln Sie die öffentliche IPv4-Adresse des VPS. Sie finden sie im Kundenbereich in der Registerkarte Netzwerk, oder dieser Befehl gibt sie aus:
bash hostname -I | awk '{print $1}'hostname -I– gibt alle IP-Adressen des VPS aus;awk '{print $1}'nimmt die erste.
Öffnen Sie in den Details der Node die Registerkarte Allocation.
Füllen Sie rechts unter Assign New Allocations die Felder gemäß der Tabelle aus und klicken Sie auf Submit.
| Feld | Was eintragen | Warum |
|---|---|---|
| IP Address | Die öffentliche IPv4-Adresse des VPS, zum Beispiel 203.0.113.10 | Die Adresse, auf der die Server lauschen. Verwenden Sie nicht 127.0.0.1; Spieler können sich damit nicht verbinden. |
| IP Alias | Optional eine Domain, zum Beispiel mc.example.cz | Text, den das Panel den Benutzern statt der IP-Adresse zeigt. Er hat keine Auswirkung auf das Routing; die Domain müssen Sie im DNS einrichten. |
| Ports | Einzelne Ports oder Bereiche, durch Kommas getrennt, zum Beispiel 25565-25574 | Ports müssen über 1024 und höchstens 65535 sein; ein Bereich darf höchstens 1000 Ports haben. |
Typische Standardports: Minecraft Java 25565, Rust 28015 (und 28016 für RCON), FiveM 30120. Für mehrere Server desselben Spiels fügen Sie einen Bereich hinzu; jeder Server erhält einen anderen Port.
Firewall#
Öffnen Sie die Ports in der Firewall im Kundenbereich (Anleitung: Firewall im Kundenbereich). Steht eingehender Verkehr auf Alles blockieren außer Erlaubtem, fügen Sie Regeln Eingehend · Erlauben hinzu:
| Protokoll | Port | Wofür |
|---|---|---|
| TCP | 8080 | Wings-API (das Panel und die Browser der Benutzer) |
| TCP | 2022 | SFTP |
| TCP | Allocation-Bereich, zum Beispiel 25565:25574 | Gameserver |
| UDP | Allocation-Bereich, zum Beispiel 25565:25574 | Gameserver und Query |
Portbereiche werden unterschiedlich geschrieben
Im Pterodactyl Panel wird ein Bereich mit Bindestrich geschrieben (25565-25574); in der Firewall des Kundenbereichs mit Doppelpunkt (25565:25574).
Verwenden Sie UFW auf dem VPS, erlauben Sie darin API und SFTP:
ufw allow 8080/tcp
ufw allow 2022/tcpSpielports müssen Sie in UFW nicht erlauben. Docker veröffentlicht Container-Ports mit eigenen Regeln, die UFW umgehen (Details in der Anleitung Firewall UFW). Beschränken Sie Spielports also mit der Firewall im Kundenbereich; sie sitzt vor dem VPS und gilt für alles.
Erster Server#
- Klicken Sie im Admin-Bereich auf Servers und dann auf Create New.
- Füllen Sie das Formular gemäß der Tabelle aus und klicken Sie unten auf Create Server.
| Feld | Was eintragen | Warum |
|---|---|---|
| Server Name | Zum Beispiel Survival | Der Name des Servers im Panel. |
| Server Owner | Die E-Mail-Adresse eines bestehenden Panel-Benutzers | Wer den Server verwaltet. Benutzer legen Sie unter Users an. |
| Server Description | Optional | Eine Beschreibung für Sie. |
| Start Server when Installed | angehakt | Der Server startet nach der Installation von selbst. |
| Node | Ihre Node | Wo der Server läuft. |
| Default Allocation | Eine freie Allocation, zum Beispiel 203.0.113.10:25565 | Primäre IP und Port des Servers. |
| Additional Allocation(s) | Optional weitere Ports | Zum Beispiel für RCON oder Query. |
| Database Limit | 0 bis 2 | Wie viele Datenbanken der Benutzer selbst anlegen darf. Funktioniert erst, wenn ein Database Host eingerichtet ist. |
| Allocation Limit | 0 bis 2 | Wie viele zusätzliche Ports der Benutzer selbst hinzufügen darf. |
| Backup Limit | Zum Beispiel 2 | Wie viele Backups der Benutzer im Panel erstellen darf. Backups liegen auf der Festplatte der Node (/var/) und belegen Platz. |
| CPU Limit (%) | Zum Beispiel 200 | 100 = ein CPU-Thread, 200 = zwei. 0 = unbegrenzt (der Server kann die gesamte CPU auslasten und die anderen ausbremsen). |
| CPU Pinning | leer | Bindung an bestimmte Kerne, nur für Fortgeschrittene. |
| Memory (MiB) | Zum Beispiel 4096 | Wie viel RAM der Container erhält. 0 = unbegrenzt, was wir nicht empfehlen. |
| Swap (MiB) | 0 | 0 schaltet Swap für den Container aus, -1 erlaubt unbegrenzten Swap. Ein Gameserver im Swap ist langsam. |
| Disk Space (MiB) | Zum Beispiel 20480 | Das Speicherplatzlimit. Überschreitet ein laufender Server es, stoppt Wings ihn sicher. 0 = kein Limit. |
| Block IO Weight | 500 (Standard) | Festplattenpriorität relativ zu anderen Containern (10–1000). |
| Enable OOM Killer | nicht anhaken | Angehakt = der Serverprozess wird beendet, wenn er seinen RAM überschreitet. Nicht angehakt = der Prozess wird nicht beendet, kann aber einfrieren. |
| Spielauswahl (zwei Menüs untereinander) | Zum Beispiel Minecraft und dann Paper | Das erste Menü ist die Spielkategorie, das zweite der konkrete Servertyp. |
| Skip … Install Script | nicht anhaken | Das Installationsskript lädt die Spieldateien herunter. Überspringen möchten Sie es nur bei eigenen Installationen. |
| Docker Image | Zum Beispiel Java 21 | Die Umgebung, in der der Server läuft. Bei Minecraft muss die Java-Version zur Spielversion passen (siehe Tipp unten). |
| Startup Command | beibehalten | Der Startbefehl, für das Spiel vorausgefüllt. |
| Service Variables | Zum Beispiel Minecraft Version latest, Build Number latest | Installations- und Starteinstellungen für das Spiel. |
Java-Version für Minecraft
Minecraft bis 1.16.5 braucht Java 8, 1.17 braucht Java 16, 1.18 bis 1.20.4 brauchen Java 17, 1.20.5 bis 1.21.x brauchen Java 21 und 26.x braucht Java 25. Startet der Server mit einem UnsupportedClassVersionError, ändern Sie das Docker Image in den Servereinstellungen auf ein neueres Java.
- Wings lädt das Docker-Image herunter und startet die Installation. Verfolgen Sie den Fortschritt in der Serverkonsole: Klicken Sie oben links auf den Panel-Namen (das bringt Sie vom Admin-Bereich zur Serverübersicht) und öffnen Sie den neuen Server. Gehört der Server einem anderen Benutzer, schalten Sie in der Übersicht den Umschalter Showing your servers auf Showing others' servers.
- Bei Minecraft erscheint nach dem ersten Start ein Fenster Accept Minecraft® EULA. Ein Klick auf I Accept bedeutet, dass Sie den Minecraft-Lizenzbedingungen zustimmen, und der Server startet.
Überprüfung#
- Die Node unter Nodes zeigt ein grünes Herz.
- Nach der Installation läuft der Server, und Sie sehen seine Ausgabe in der Konsole (bei Minecraft die Zeile
Done (…)! For help, type "help"). - Im Spiel können Sie sich mit
203.0.113.10:25565(oder dem IP Alias) verbinden. - Per SFTP können Sie sich mit der Adresse der Node und Port
2022verbinden (zum Beispielsftp://). Adresse und Benutzername finden Sie in der Registerkarte Settings des Servers unter SFTP Details (Server Address, Username). Das Passwort ist dasselbe wie Ihr Panel-Passwort.panel. example. cz: 2022
Prüfung auf dem VPS:
systemctl is-active docker wings
docker psdocker ps– listet laufende Container auf; jeder Gameserver ist ein Container.
Wings aktualisieren#
Aktualisieren Sie Wings immer nach dem Aktualisieren des Panels (Panel-Schritte):
systemctl stop wings
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
chmod u+x /usr/local/bin/wings
systemctl restart wingssystemctl stop wings– stoppt Wings, damit das Programm überschrieben werden kann. Laufende Gameserver sind nicht betroffen.curl …undchmod …– dasselbe wie bei der Installation; sie laden die neueste Version herunter.systemctl restart wings– startet die neue Version; offene Verbindungen verbinden sich von selbst neu.
Fehlerbehebung#
Rotes Herz bei der Node#
Das Panel konnte Wings nicht erreichen. Gehen Sie die Ursachen von der häufigsten an durch:
- Läuft Wings?
systemctl status wings. Falls nicht, führen Siewings --debugaus und lesen Sie den Fehler. - Ist Port
8080in der Firewall des Kundenbereichs und in UFW offen? - Zeigt der FQDN der Node auf die richtige IP?
getent hosts node.example.cz. - Funktioniert das Zertifikat? Führen Sie auf dem Panel-VPS
curl https://aus. Die Antwortnode. example. cz: 8080 {"error":"The required authorization heads were not present in the request."}ist in Ordnung: Wings antwortet, Sie haben nur keinen Anmelde-Token gesendet. Ein Zertifikatsfehler (SSL certificate problem) bedeutet ein falsches oder abgelaufenes Zertifikat. - Läuft die Domain der Node über den Cloudflare-Proxy (orangefarbene Wolke)? Schalten Sie sie auf DNS only.
- Passt
config.ymlzu dem, was die Registerkarte Configuration im Panel zeigt? Das Löschen und Neuanlegen einer Node ändert den Token. - Prüfen Sie, dass keine Browser-Erweiterung wie AdBlock die Verbindung blockiert.
failed to configure HTTPS server#
Wings hat das Zertifikat nicht gefunden. Die Ausgabe enthält meist auch no such file or directory mit einem Pfad. Der Pfad in config.yml (api.ssl.cert) muss zu dem Zertifikat passen, das Sie haben (certbot certificates). Haben Sie den FQDN der Node geändert, holen Sie auch ein Zertifikat für die neue Domain.
address already in use#
Port 8080 oder 2022 wird bereits von einem anderen Programm verwendet. Finden Sie heraus, von welchem:
ss -tulpn | grep -E ':8080|:2022'ss -tulpn– listet lauschende Ports (TCP und UDP) und die Programme auf, die sie halten.
Verschieben Sie das Programm woandershin oder ändern Sie den Daemon Port in den Node-Einstellungen, kopieren Sie die neue Konfiguration und starten Sie Wings neu.
Die Serverkonsole verbindet sich nicht#
Der Browser zeigt Failed to connect to websocket instance after multiple attempts: try refreshing the page. Der Browser konnte FQDN:8080 nicht erreichen. Die Ursachen sind dieselben wie beim roten Herz, aber Port 8080 muss auch von Ihrem Computer aus funktionieren, nicht nur vom Panel. Öffnen Sie https:// in Ihrem Browser. Lädt die Seite nicht, liegt das Problem bei Firewall, DNS oder Zertifikat.
Die Serverinstallation scheitert beim Herunterladen#
Die Installationskonsole zeigt Meldungen wie Could not resolve host. Die Container haben kein funktionierendes DNS. Standardmäßig gibt Wings ihnen die Server 1.1.1.1 und 1.0.0.1. Ermitteln Sie die DNS-Server des VPS mit resolvectl status (die Zeilen DNS Servers) oder, falls der Befehl unter Debian nicht existiert, in /etc/resolv.conf (die Zeilen nameserver). Tragen Sie sie in /etc/ anstelle der Standardwerte ein (unter docker: › network: › dns:). Verwenden Sie nicht 127.0.0.53; es funktioniert nur auf dem VPS selbst, nicht in einem Container. Starten Sie Wings dann neu: systemctl restart wings.
Der Server wird nicht erstellt, das Panel meldet zu wenig Platz oder Speicher#
Der gesamte RAM oder die Festplatte der Server würde Total Memory oder Total Disk Space der Node überschreiten. Erhöhen Sie die Werte in den Node-Einstellungen (Registerkarte Settings), wenn der VPS die Kapazität wirklich hat, oder senken Sie die Limits der Server.
Der Server schaltet sich nach einer Weile selbst ab#
Er hat sein Festplattenlimit überschritten (Wings stoppt ihn sicher) oder die Konsole mit Ausgabe geflutet (Flood-Schutz). Prüfen Sie im Panel die Festplattennutzung des Servers und die Konsolenausgabe vor dem Herunterfahren.
Zusammenfassung
- Wings läuft als Dienst
wings; Serverdaten liegen in/var/.lib/ pterodactyl/ volumes - Die Node braucht eine Domain mit gültigem Zertifikat und einen aus dem Internet erreichbaren Port
8080; die Domain darf nicht über den Cloudflare-Proxy laufen. - SFTP läuft auf Port
2022, nie auf22. - Allocation = öffentliche IP + Port; im Panel verwendet ein Bereich einen Bindestrich, in der Firewall des Kundenbereichs einen Doppelpunkt.
- Docker öffnet Spielports außerhalb von UFW; beschränken Sie sie mit der Firewall im Kundenbereich.
- Aktualisieren Sie nach dem Panel auch Wings.
Weiterführende Links#
- Pterodactyl: Installing Wings (öffnet sich in einem neuen Fenster)
- Pterodactyl: Upgrading Wings (öffnet sich in einem neuen Fenster)
- Pterodactyl: Wings Additional Configuration (öffnet sich in einem neuen Fenster)
- Pterodactyl: Creating a New Node (öffnet sich in einem neuen Fenster)
- Pterodactyl: Creating SSL Certificates (öffnet sich in einem neuen Fenster)
- Cloudflare: Netzwerkports (öffnet sich in einem neuen Fenster)