Wings to usługa Pterodactyla, która uruchamia serwery gier w kontenerach Dockera na Twoim serwerze. Zainstalujemy ją, połączymy z Panelem, otworzymy potrzebne porty i utworzymy pierwszy serwer.
Czego potrzebujesz
- Działający Pterodactyl Panel z HTTPS (poradnik)
- VPS dla serwerów gier z Ubuntu 24.04 lub Debianem 13 (może być ten sam VPS co Panel)
- Domena dla węzła: ta sama co Panel (
panel.example.cz) albo własna (node.example.cz) - Połączenie SSH jako root
- Około 60 minut
Jak to działa#
Panel to tylko interfejs WWW. Prawdziwą pracę wykonuje Wings na węźle (serwerze, na którym działają gry). Wings przyjmuje polecenia z Panelu, pobiera obrazy Dockera, uruchamia serwery gier w izolowanych kontenerach, pilnuje ich RAM i dysku oraz obsługuje konsolę i pliki.
Istotne jest, kto gdzie się łączy:
| Połączenie | Port | Protokół | Kto się łączy |
|---|---|---|---|
| API Wings | 8080 | TCP (HTTPS) | Panel i przeglądarka każdego użytkownika (konsola na żywo przez websocket, przesyłanie plików). Dlatego adres węzła musi być publicznie dostępny i mieć ważny certyfikat. |
| SFTP | 2022 | TCP | Użytkownicy przesyłający pliki programem takim jak WinSCP lub FileZilla. |
| Porty gier | zależnie od gry, na przykład 25565 | TCP i UDP | Gracze. |
Serwery gier dostają wewnętrzną sieć Dockera pterodactyl_nw. Na VPS pojawia się interfejs sieciowy pterodactyl0 z adresem 172.18.0.1; kontenery docierają przez niego do samego serwera (użyjesz tego przy database hoście). Dane serwerów leżą w /var/.
Sprawdzenie wirtualizacji#
Wings potrzebuje Dockera, a Docker pełnej wirtualizacji. VPS StormHost działają na KVM, który się nadaje. Sprawdzisz to przez:
systemd-detect-virtkvmWynik openvz lub lxc oznaczałby, że Docker (a więc i Wings) najprawdopodobniej nie zadziała.
Instalacja Dockera#
Zainstaluj Dockera z oficjalnego repozytorium Dockera. Każde polecenie szczegółowo objaśnia poradnik Docker i Docker Compose; tutaj tylko kroki:
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-pluginNastępnie włącz Dockera przy starcie i go przetestuj:
systemctl enable --now docker
docker run --rm hello-worldsystemctl enable --now docker– Docker startuje od razu, a potem przy każdym uruchomieniu VPS.docker run --rm hello-world– pobiera i uruchamia kontener testowy;--rmusuwa go po zakończeniu. Zobaczysz tekstHello from Docker!.
Pomiń krok „Enabling Swap” z dokumentacji
Oficjalna dokumentacja Wings opisuje zmianę w GRUB (swapaccount=1). Jest potrzebna tylko na jądrach starszych niż 6.1. Ubuntu 24.04 i Debian 13 mają nowsze jądra (sprawdź przez uname -r), więc ten krok pomiń.
Pobieranie Wings#
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– katalog na konfigurację Wings.curl -L -o /usr/local/bin/wings "…"– pobiera najnowsze wydanie Wings jako program/usr/local/bin/wings.-Lpodąża za przekierowaniami GitHuba.$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")– wybiera właściwy plik dla architektury CPU:uname -mwypisujex86_64(typowe serwery), dla którego pobierany jest buildamd64.chmod u+x– pozwala właścicielowi (root) uruchamiać plik.
Kontrola: wings version wypisuje numer wersji.
Domena i certyfikat dla węzła#
Panel działa na HTTPS, więc Wings także musi używać HTTPS. Inaczej przeglądarka zablokowałaby połączenie z węzłem. Certyfikat jest powiązany z domeną węzła (pole FQDN w Panelu).
Ten sam VPS co Panel
Jeśli Wings działa na tym samym VPS co Panel, jako FQDN węzła użyj domeny Panelu (panel.example.cz). Certyfikat masz już z instalacji Panelu, a Wings znajdzie go w /etc/. Nic więcej nie trzeba robić.
Osobny VPS dla węzła
Utwórz rekord
Adlanode.example.czz adresem IPv4 VPS węzła.Otwórz port
80(TCP) w firewallu węzła; Let's Encrypt używa go do walidacji domeny. Zostaw go otwarty także później: każde automatyczne odnowienie certyfikatu przechodzi przez ten sam port.Zainstaluj Certbota:
apt -y install certbot.Uzyskaj certyfikat. Na VPS węzła zwykle nie działa żaden serwer WWW, więc użyj trybu standalone, w którym Certbot na chwilę uruchamia własny serwer na porcie 80:
bash certbot certonly --standalone -d node.example.czcertonly– tylko uzyskuje certyfikat.--standalone– walidacja przez tymczasowy serwer Certbota na porcie 80 (port nie może być zajęty przez inny program).-d node.example.cz– domena węzła.
Jeśli na VPS węzła działa Nginx, zamiast --standalone użyj --nginx.
Po odnowieniu certyfikatu Wings trzeba zrestartować, inaczej używa dalej starego certyfikatu. Utwórz deploy hook (skrypt, który Certbot uruchamia po każdym udanym odnowieniu):
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 uruchamia pliki z katalogu
renewal-hooks/deploypo każdym odnowieniu certyfikatu. systemctl restart wings– restartuje Wings. Nie zatrzymuje to działających serwerów gier; Wings po starcie łączy się z nimi ponownie.chmod 755– skrypt musi być wykonywalny.
Domena węzła nie może przechodzić przez proxy Cloudflare
Jeśli zarządzasz DNS w Cloudflare, rekord domeny węzła zostaw ustawiony na DNS only (szara chmurka). Na porcie 8080 Cloudflare przepuszcza tylko nieszyfrowane HTTP, a SFTP i portów gier w ogóle nie przepuszcza przez proxy. Jeśli węzeł używa tej samej domeny co Panel, zostaw całą domenę Panelu na szarej chmurce albo użyj dla węzła osobnej subdomeny.
Lokalizacja#
Każdy węzeł należy do lokalizacji. Lokalizacja to tylko etykieta do porządkowania węzłów (na przykład według centrum danych).
- W Panelu otwórz część administracyjną (ikona koła zębatego w prawym górnym rogu) i kliknij Locations po lewej.
- Kliknij Create New.
- Wypełnij Short Code, krótki identyfikator o długości 1–60 znaków, na przykład
cz-praha. - Wypełnij Description, opis lokalizacji dla Ciebie i innych adminów, na przykład
VPS w Pradze. - Kliknij Create.
Węzeł w Panelu#
W części administracyjnej kliknij Nodes po lewej, a potem Create New. Wypełnij formularz według tabeli:
| Pole | Co wpisać | Dlaczego i kiedy wybrać inaczej |
|---|---|---|
| Name | Na przykład node-praha-1 | Nazwa dla Ciebie. Dozwolone są litery bez znaków diakrytycznych, cyfry, _, -, . i spacje. |
| Description | Opcjonalnie | Notatka dla Ciebie. |
| Location | Lokalizacja z poprzedniej sekcji | Tylko kategoria. |
| Node Visibility | Public | Private zapobiega automatycznemu umieszczaniu serwerów na węźle (auto-deploy). Do normalnego użytku zostaw Public. |
| FQDN | panel.example.cz (ten sam VPS) lub node.example.cz | Adres, pod którym Panel i przeglądarki znajdują Wings. Przy użyciu SSL musi to być domena, nie adres IP. |
| Communicate Over SSL | Use SSL Connection | Gdy Panel działa na HTTPS, nie da się wybrać niczego innego. |
| Behind Proxy | Not Behind Proxy | Behind Proxy tylko wtedy, gdy Wings stoi za proxy, które samo kończy TLS. Wings nie szuka wtedy certyfikatu. W tym poradniku tak nie jest. |
| Daemon Server File Directory | /var/ | Gdzie przechowywane są dane serwerów gier. Zmieniaj tylko przy pracy z drugim dyskiem. |
| Total Memory (MiB) | RAM VPS minus rezerwa | Ile RAM Panel może rozdać serwerom gier. Na VPS 8 GB, na którym działa też Panel, wpisz na przykład 6144 (6 GB). 1 GB = 1024 MiB. |
| Memory Over-Allocation (%) | 0 | O ile procent łączna RAM serwerów może przekroczyć Total Memory. 0 = nigdy, -1 = wyłącza kontrolę. Nadprzydział RAM prowadzi do awarii serwerów. |
| Total Disk Space (MiB) | Wolne miejsce na dysku minus rezerwa | Na przykład na dysku 100 GB wpisz 81920 (80 GB). Resztę zostaw dla systemu, obrazów Dockera i kopii zapasowych. |
| Disk Over-Allocation (%) | 0 | Tak samo jak dla pamięci. |
| Daemon Port | 8080 | Port API Wings. Zmieniaj tylko przy konflikcie z innym programem. |
| Daemon SFTP Port | 2022 | Port SFTP dla plików serwerów gier. Nigdy nie wpisuj 22; należy do serwera SSH VPS. |
Kliknij Create Node. Panel otworzy szczegóły węzła.
Ile RAM zostawić systemowi
Łączną RAM VPS w MiB sprawdzisz przez free -m (wiersz Mem:, kolumna total). System, Docker i Wings potrzebują kilkuset MiB. Jeśli na VPS działa też Panel z MariaDB i Redisem, zostaw im co najmniej 1–2 GB.
Konfiguracja Wings#
W szczegółach węzła otwórz zakładkę Configuration. Konfigurację przeniesiesz na VPS na jeden z dwóch sposobów.
Sposób A, automatyczny: kliknij Generate Token. Panel pokaże polecenie zaczynające się od cd /etc/pterodactyl && sudo wings configure --panel-url https://panel.example.cz --token …. Skopiuj je w całości i uruchom na VPS węzła. Wings pobierze konfigurację z Panelu.
Sposób B, ręczny:
Na VPS otwórz plik:
bash nano /etc/pterodactyl/config.ymlWklej cały blok z zakładki Configuration, zapisz (Ctrl+O, Enter) i zamknij (Ctrl+X).
Co jest w konfiguracji:
| Klucz | Co oznacza |
|---|---|
uuid | Unikalny identyfikator węzła w Panelu. |
token_id, token | Tajny klucz, którym Wings i Panel wzajemnie się uwierzytelniają. Kto go ma, steruje węzłem. Nie udostępniaj go ani nie publikuj na czatach czy forach. |
api.host | 0.0.0.0 = API nasłuchuje na wszystkich adresach VPS. |
api.port | Daemon Port z formularza (8080). |
api.ssl.enabled | true, jeśli węzeł używa SSL i nie stoi za proxy. |
api.ssl.cert, api.ssl.key | Ścieżka certyfikatu według FQDN, na przykład /etc/. |
api.upload_limit | Największy plik (w MB), jaki można przesłać przez menedżer plików Panelu. Zmieniasz w ustawieniach węzła. |
system.data | Katalog z danymi serwerów. |
system.sftp.bind_port | Port SFTP (2022). |
remote | Adres Panelu, do którego raportuje Wings. |
Przy pierwszym starcie Wings dopisuje do pliku kolejne wartości domyślne, na przykład ustawienia sieci Dockera (docker.network, adres 172.18.0.1) i serwery DNS dla kontenerów (1.1.1.1, 1.0.0.1).
Pierwsze uruchomienie w trybie debugowania#
Zanim uruchomisz w tle, wypróbuj Wings ręcznie, aby widzieć ewentualne błędy:
wings --debug--debug– szczegółowy log wszystkiego, co robi Wings.
Przy pierwszym starcie Wings tworzy sieć Dockera (creating missing pterodactyl0 interface…) i zgłasza, że nasłuchuje (configuring internal webserver). Potem otwórz Nodes w Panelu. Węzeł pokazuje zielone pulsujące serce = Panel połączył się z Wings. Czerwone serce oznacza, że połączenie nie działa (zobacz Rozwiązywanie problemów).
Gdy serce jest zielone, zatrzymaj Wings przez Ctrl+C.
Wings jako usługa#
Aby Wings działał stale i startował automatycznie po restarcie VPS, utwórz usługę systemd:
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| Linia | Co robi |
|---|---|
After=docker.service | Wings startuje dopiero po Dockerze. |
Requires=docker.service | Wings nie wystartuje bez działającego Dockera. |
PartOf=docker.service | Restart lub zatrzymanie Dockera przenosi się na Wings. |
User=root | Wings potrzebuje uprawnień roota (steruje Dockerem i plikami serwerów). |
WorkingDirectory= | Katalog roboczy z config.yml. |
LimitNOFILE=4096 | Ile plików i połączeń Wings może mieć otwartych naraz. |
PIDFile= | Gdzie Wings zapisuje ID swojego procesu. |
ExecStart= | Uruchamia program (bez --debug). |
Restart=on-failure | Wings startuje ponownie po awarii. |
StartLimitInterval=180, StartLimitBurst=30 | Ochrona przed nieskończoną pętlą restartów: najwyżej 30 startów w 180 sekund. |
RestartSec=5s | Czeka 5 sekund przed restartem. |
WantedBy= | Startuje przy uruchomieniu VPS. |
Włącz i uruchom usługę:
systemctl enable --now wings
systemctl status wingsZobaczysz Active: active (running). Serce węzła w Panelu pozostaje zielone.
Alokacje#
Alokacja to kombinacja adresu IP i portu, którą dostaje serwer gier. Każdy serwer potrzebuje co najmniej jednej (głównej); kolejne możesz dodać dla RCON, query lub pluginów.
Znajdź publiczny adres IPv4 VPS. Znajdziesz go w strefie klienta w zakładce Sieć albo wypisze go:
bash hostname -I | awk '{print $1}'hostname -I– wypisuje wszystkie adresy IP VPS;awk '{print $1}'bierze pierwszy.
W szczegółach węzła otwórz zakładkę Allocation.
Po prawej w Assign New Allocations wypełnij pola według tabeli i kliknij Submit.
| Pole | Co wpisać | Dlaczego |
|---|---|---|
| IP Address | Publiczny adres IPv4 VPS, na przykład 203.0.113.10 | Adres, na którym będą nasłuchiwać serwery. Nie używaj 127.0.0.1; gracze nie mogą się z nim połączyć. |
| IP Alias | Opcjonalnie domena, na przykład mc.example.cz | Tekst, który Panel pokazuje użytkownikom zamiast adresu IP. Nie wpływa na routing; domenę musisz skierować w DNS. |
| Ports | Pojedyncze porty lub zakresy oddzielone przecinkami, na przykład 25565-25574 | Porty muszą być powyżej 1024 i najwyżej 65535; jeden zakres może mieć najwyżej 1000 portów. |
Typowe porty domyślne: Minecraft Java 25565, Rust 28015 (i 28016 dla RCON), FiveM 30120. Dla kilku serwerów tej samej gry dodaj zakres; każdy serwer dostaje inny port.
Firewall#
Otwórz porty w firewallu w strefie klienta (poradnik: Firewall w strefie klienta). Jeśli ruch przychodzący jest ustawiony na Blokuj wszystko poza dozwolonym, dodaj reguły Przychodzący · Zezwól:
| Protokół | Port | Do czego |
|---|---|---|
| TCP | 8080 | API Wings (Panel i przeglądarki użytkowników) |
| TCP | 2022 | SFTP |
| TCP | zakres alokacji, na przykład 25565:25574 | Serwery gier |
| UDP | zakres alokacji, na przykład 25565:25574 | Serwery gier i query |
Zakresy portów zapisuje się inaczej
W Panelu Pterodactyla zakres zapisuje się myślnikiem (25565-25574); w firewallu strefy klienta dwukropkiem (25565:25574).
Jeśli używasz UFW na VPS, zezwól w nim na API i SFTP:
ufw allow 8080/tcp
ufw allow 2022/tcpPortów gier nie musisz zezwalać w UFW. Docker publikuje porty kontenerów własnymi regułami, które omijają UFW (szczegóły w poradniku Firewall UFW). Porty gier ograniczaj więc firewallem w strefie klienta; stoi przed VPS i dotyczy wszystkiego.
Pierwszy serwer#
- W części administracyjnej kliknij Servers, a potem Create New.
- Wypełnij formularz według tabeli i kliknij Create Server na dole.
| Pole | Co wpisać | Dlaczego |
|---|---|---|
| Server Name | Na przykład Survival | Nazwa serwera w Panelu. |
| Server Owner | E-mail istniejącego użytkownika Panelu | Kto będzie zarządzać serwerem. Użytkowników tworzysz w Users. |
| Server Description | Opcjonalnie | Opis dla Ciebie. |
| Start Server when Installed | zaznaczone | Serwer startuje sam po instalacji. |
| Node | Twój węzeł | Gdzie serwer będzie działać. |
| Default Allocation | Wolna alokacja, na przykład 203.0.113.10:25565 | Główne IP i port serwera. |
| Additional Allocation(s) | Opcjonalnie kolejne porty | Na przykład dla RCON lub query. |
| Database Limit | 0 do 2 | Ile baz danych użytkownik może utworzyć sam. Działa dopiero po skonfigurowaniu database hosta. |
| Allocation Limit | 0 do 2 | Ile dodatkowych portów użytkownik może dodać sam. |
| Backup Limit | Na przykład 2 | Ile kopii zapasowych użytkownik może utworzyć w Panelu. Kopie leżą na dysku węzła (/var/) i zajmują miejsce. |
| CPU Limit (%) | Na przykład 200 | 100 = jeden wątek CPU, 200 = dwa. 0 = bez limitu (serwer może wysycić cały CPU i spowolnić pozostałe). |
| CPU Pinning | puste | Przypięcie do konkretnych rdzeni, tylko dla zaawansowanych. |
| Memory (MiB) | Na przykład 4096 | Ile RAM dostaje kontener. 0 = bez limitu, czego nie zalecamy. |
| Swap (MiB) | 0 | 0 wyłącza swap dla kontenera, -1 pozwala na nieograniczony swap. Serwer gier w swapie jest wolny. |
| Disk Space (MiB) | Na przykład 20480 | Limit miejsca. Gdy działający serwer go przekroczy, Wings bezpiecznie go zatrzymuje. 0 = bez limitu. |
| Block IO Weight | 500 (domyślnie) | Priorytet dysku względem innych kontenerów (10–1000). |
| Enable OOM Killer | zostaw niezaznaczone | Zaznaczone = proces serwera jest zabijany po przekroczeniu RAM. Niezaznaczone = proces nie jest zabijany, ale może zamarznąć. |
| Wybór gry (dwa menu jedno pod drugim) | Na przykład Minecraft, a potem Paper | Pierwsze menu to kategoria gry, drugie konkretny typ serwera. |
| Skip … Install Script | zostaw niezaznaczone | Skrypt instalacyjny pobiera pliki gry. Pominąć go chcesz tylko przy własnych instalacjach. |
| Docker Image | Na przykład Java 21 | Środowisko, w którym działa serwer. Dla Minecrafta wersja Javy musi pasować do wersji gry (zobacz wskazówkę niżej). |
| Startup Command | zostaw | Polecenie startowe, wypełnione dla gry. |
| Service Variables | Na przykład Minecraft Version latest, Build Number latest | Ustawienia instalacji i uruchamiania gry. |
Wersja Javy dla Minecrafta
Minecraft do 1.16.5 potrzebuje Javy 8, 1.17 Javy 16, 1.18 do 1.20.4 Javy 17, 1.20.5 do 1.21.x Javy 21, a 26.x Javy 25. Jeśli serwer startuje z błędem UnsupportedClassVersionError, zmień Docker Image w ustawieniach serwera na nowszą Javę.
- Wings pobiera obraz Dockera i rozpoczyna instalację. Postęp śledź w konsoli serwera: kliknij nazwę Panelu w lewym górnym rogu (przenosi z części administracyjnej do przeglądu serwerów) i otwórz nowy serwer. Jeśli serwer należy do innego użytkownika, przełącz w przeglądzie przełącznik Showing your servers na Showing others' servers.
- Przy Minecrafcie po pierwszym starcie pojawi się okno Accept Minecraft® EULA. Kliknięcie I Accept oznacza zgodę na warunki licencji Minecrafta i serwer startuje.
Weryfikacja#
- Węzeł w Nodes pokazuje zielone serce.
- Po instalacji serwer działa, a w konsoli widzisz jego wyjście (przy Minecrafcie linię
Done (…)! For help, type "help"). - W grze możesz połączyć się z
203.0.113.10:25565(albo z IP Alias). - Przez SFTP możesz połączyć się z adresem węzła i portem
2022(na przykładsftp://). Adres i nazwę użytkownika znajdziesz w zakładce Settings serwera w SFTP Details (Server Address, Username). Hasło jest takie samo jak do Panelu.panel. example. cz: 2022
Kontrola na VPS:
systemctl is-active docker wings
docker psdocker ps– wypisuje działające kontenery; każdy serwer gier to jeden kontener.
Aktualizacja Wings#
Wings aktualizuj zawsze po aktualizacji Panelu (kroki dla Panelu):
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– zatrzymuje Wings, aby dało się nadpisać program. Działające serwery gier nie są dotknięte.curl …ichmod …– to samo co przy instalacji; pobierają najnowszą wersję.systemctl restart wings– uruchamia nową wersję; otwarte połączenia łączą się ponownie same.
Rozwiązywanie problemów#
Czerwone serce przy węźle#
Panel nie mógł dotrzeć do Wings. Przejdź przyczyny od najczęstszych:
- Czy Wings działa?
systemctl status wings. Jeśli nie, uruchomwings --debugi przeczytaj błąd. - Czy port
8080jest otwarty w firewallu strefy klienta i w UFW? - Czy FQDN węzła wskazuje na właściwe IP?
getent hosts node.example.cz. - Czy certyfikat działa? Na VPS Panelu uruchom
curl https://. Odpowiedźnode. example. cz: 8080 {"error":"The required authorization heads were not present in the request."}jest w porządku: Wings odpowiada, tylko nie wysłano tokenu logowania. Błąd certyfikatu (SSL certificate problem) oznacza zły lub wygasły certyfikat. - Czy domena węzła przechodzi przez proxy Cloudflare (pomarańczowa chmurka)? Przełącz ją na DNS only.
- Czy
config.ymlzgadza się z tym, co pokazuje zakładka Configuration w Panelu? Usunięcie i ponowne utworzenie węzła zmienia token. - Sprawdź, czy rozszerzenie przeglądarki, takie jak AdBlock, nie blokuje połączenia.
failed to configure HTTPS server#
Wings nie znalazł certyfikatu. Wyjście zwykle zawiera też no such file or directory ze ścieżką. Ścieżka w config.yml (api.ssl.cert) musi zgadzać się z posiadanym certyfikatem (certbot certificates). Jeśli zmieniono FQDN węzła, uzyskaj certyfikat także dla nowej domeny.
address already in use#
Port 8080 lub 2022 zajmuje już inny program. Ustal który:
ss -tulpn | grep -E ':8080|:2022'ss -tulpn– wypisuje nasłuchujące porty (TCP i UDP) i trzymające je programy.
Przenieś program gdzie indziej albo zmień Daemon Port w ustawieniach węzła, skopiuj nową konfigurację i zrestartuj Wings.
Konsola serwera się nie łączy#
Przeglądarka pokazuje Failed to connect to websocket instance after multiple attempts: try refreshing the page. Przeglądarka nie mogła dotrzeć do FQDN:8080. Przyczyny są takie same jak przy czerwonym sercu, ale port 8080 musi działać też z Twojego komputera, nie tylko z Panelu. Otwórz w przeglądarce https://. Jeśli strona się nie ładuje, problem jest w firewallu, DNS lub certyfikacie.
Instalacja serwera nie udaje się przy pobieraniu#
Konsola instalacji pokazuje komunikaty typu Could not resolve host. Kontenery nie mają działającego DNS. Domyślnie Wings daje im serwery 1.1.1.1 i 1.0.0.1. Serwery DNS VPS znajdziesz przez resolvectl status (linie DNS Servers) albo, jeśli polecenie nie istnieje na Debianie, w /etc/resolv.conf (linie nameserver). Wpisz je do /etc/ w miejsce domyślnych (w docker: › network: › dns:). Nie używaj 127.0.0.53; działa tylko na samym VPS, nie w kontenerze. Potem zrestartuj Wings: systemctl restart wings.
Serwer nie powstaje, Panel zgłasza brak miejsca lub pamięci#
Łączna RAM lub dysk serwerów przekroczyłyby Total Memory lub Total Disk Space węzła. Podnieś wartości w ustawieniach węzła (zakładka Settings), jeśli VPS naprawdę ma pojemność, albo obniż limity serwerów.
Serwer po chwili sam się wyłącza#
Przekroczył limit dysku (Wings bezpiecznie go zatrzymuje) albo zalał konsolę wyjściem (ochrona przed floodem). Sprawdź w Panelu zużycie dysku serwera i wyjście konsoli przed wyłączeniem.
Podsumowanie
- Wings działa jako usługa
wings; dane serwerów są w/var/.lib/ pterodactyl/ volumes - Węzeł potrzebuje domeny z ważnym certyfikatem i portu
8080dostępnego z internetu; domena nie może przechodzić przez proxy Cloudflare. - SFTP działa na porcie
2022, nigdy na22. - Alokacja = publiczne IP + port; w Panelu zakres zapisuje się myślnikiem, w firewallu strefy klienta dwukropkiem.
- Docker otwiera porty gier poza UFW; ograniczaj je firewallem w strefie klienta.
- Po aktualizacji Panelu zaktualizuj też Wings.
Dalsza lektura#
- Pterodactyl: Installing Wings (otwiera się w nowym oknie)
- Pterodactyl: Upgrading Wings (otwiera się w nowym oknie)
- Pterodactyl: Wings Additional Configuration (otwiera się w nowym oknie)
- Pterodactyl: Creating a New Node (otwiera się w nowym oknie)
- Pterodactyl: Creating SSL Certificates (otwiera się w nowym oknie)
- Cloudflare: porty sieciowe (otwiera się w nowym oknie)