Tutoriais de VPS
Montar um servidor dedicado de Palworld em uma VPS (2026): SteamCMD, portas, configuração, backups e atualizações
Monte do zero um servidor dedicado de Palworld em uma VPS Ubuntu com SteamCMD, cobrindo 8211/UDP, systemd, servidores comunitários multiplataforma, configuração, backup e restauração, atualizações seguras e solução de problemas comuns.

Se você quer jogar Palworld com amigos a longo prazo, rodar seu próprio servidor dedicado costuma ser mais estável do que deixar um jogador com o jogo aberto o tempo todo, e ainda permite controlar o número de jogadores, as senhas, os multiplicadores de drop, os saves e os horários de atualização. Os verdadeiros problemas não estão em "baixar os arquivos do servidor", mas em ficar sem memória, abrir a porta 8211 com o protocolo errado, editar o arquivo de configuração errado, escolher o ponto de entrada multiplataforma errado e atualizar sem um backup recuperável.
Este artigo usa Ubuntu 24.04 LTS, o servidor oficial do SteamCMD e o systemd como exemplo para concluir do zero a instalação, a liberação de portas, a configuração de PalWorldSettings.ini, as conexões multiplataforma, o backup e a restauração, e as atualizações. Os comandos servem para uma VPS Linux limpa, e o guia distingue claramente entre um servidor dedicado comum, um servidor comunitário e a imagem oficial do Docker.
O requisito oficial atual da Pocketpair é de 4 ou mais núcleos de CPU, 16 GB de memória e um SSD rápido; com 8 GB pode até iniciar, mas memória insuficiente aumenta a chance de travamentos, e a orientação oficial recomenda 32 GB ou mais para servidores maiores. Palworld não precisa de GPU dedicada, então na compra você deve priorizar desempenho de CPU estável, memória realmente disponível, discos NVMe e qualidade de rede UDP.
Abaixo estão recomendações práticas de ponto de partida para comprar uma VPS, não garantias oficiais de concorrência:
| Escala de uso | Ponto de partida sugerido da VPS | Disco | Observações |
|---|---|---|---|
| Servidor privado de 4-8 jogadores | 4 vCPUs de alto desempenho, 16 GB de memória | 80 GB NVMe | Multiplicadores padrão, poucas construções |
| Servidor de longo prazo de 8-16 jogadores | 6 vCPUs de alto desempenho, 24 GB de memória | 120 GB NVMe | Mais bases e saves de longo prazo |
| Servidor comunitário de 16-32 jogadores | 8 ou mais núcleos, 32 GB ou mais de memória | 160 GB ou mais NVMe | Listagem pública, jogadores ativos, saves maiores |
O data center deve ficar próximo dos seus principais jogadores, e você deve confirmar que o provedor permite servidores de jogos, oferece suporte a UDP, fornece tráfego suficiente e uma proteção DDoS razoável. Para servidores públicos, pergunte também claramente sobre a política de bloqueio após um ataque e o custo de trocar de IP. Se precisar comparar rotas e configurações, comece pelo guia de recomendações e configuração de VPS para servidores de jogos.
| Abordagem | Vantagens | Contrapartidas | Para quem serve |
|---|---|---|---|
| SteamCMD + systemd | Caminhos intuitivos, poucas dependências, fácil localizar logs e saves | Gerenciado principalmente via SSH | Uma única VPS, uma instância de Palworld |
| Imagem oficial do Docker | Imagem e exemplo de Compose mantidos oficialmente, fácil de migrar | Exige entender volumes, tags de imagem e atualizações de contêiner | Equipes já padronizadas em Docker |
| Pterodactyl | Painel web, contas, cotas, gerenciamento de múltiplas instâncias | Exige manter o Panel, o Wings e um banco de dados | Hospedar vários servidores de jogos ou operação por várias pessoas |
A Pocketpair oferece uma imagem oficial do Docker, mas não recomenda explicitamente executá-la no Docker Desktop para Windows/macOS, porque a E/S de disco pode causar corrupção de saves e riscos de falha. Este artigo escolhe o SteamCMD nativo do Linux, com caminhos mais transparentes e mais adequado para uma primeira hospedagem própria. Se você quiser gerenciar várias instâncias como Minecraft, Rust e Palworld na mesma máquina, pode mudar para montar um painel de servidores de jogos Pterodactyl em uma VPS; para comparar outra abordagem de gerenciamento de servidores de jogos, veja o tutorial de servidor dedicado de Rust com LinuxGSM.
Uma implantação mínima funcional só precisa expor uma porta de jogo:
| Porta | Protocolo | Uso | Política pública |
|---|---|---|---|
| 8211 | UDP | Conexões de jogadores, porta de escuta padrão do jogo | Aberta aos jogadores |
| 8212 | TCP | Porta padrão da REST API | Não aberta à internet, permitir apenas localhost ou a intranet de gerenciamento |
| 25575 | TCP | Porta padrão do RCON legado | Não recomendada para novas implantações |
A documentação oficial marcou o RCON como obsoleto e afirma que o suporte será encerrado em uma atualização futura. Não baseie os fluxos de gerenciamento de novos servidores no RCON; se você realmente precisar de gerenciamento remoto, prefira a REST API e restrinja-a a 127.0.0.1, a uma LAN ou a uma rede de gerenciamento WireGuard/Tailscale. A REST API é uma interface de gerenciamento, e expô-la diretamente à internet pode permitir operações não autorizadas.
O tipo de servidor também afeta como os jogadores entram:
- Servidor dedicado comum: os jogadores entram pelo IP público e porta, adequado para jogadores da Steam e grupos pequenos.
- Servidor comunitário: adicione
-publiclobbyna inicialização, e o servidor aparece na lista dentro do jogo. Jogadores de Xbox ou PS5 precisam do ponto de entrada de servidor comunitário para entrar em um servidor auto-hospedado. - A lista multiplataforma padrão oficial atual é Steam, Xbox, PS5 e Mac; não use mais o obsoleto
AllowConnectPlatform, useCrossplayPlatforms.
Primeiro atualize o sistema e instale as dependências com uma conta de administrador que tenha privilégios de sudo:
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl ca-certificates tar lib32gcc-s1 ufw
Crie uma conta de serviço que não seja usada para login diário e prepare os diretórios do SteamCMD e do Palworld:
sudo adduser --disabled-password --gecos "" palworld
sudo install -d -o palworld -g palworld /opt/steamcmd
sudo install -d -o palworld -g palworld /opt/palworld
sudo -iu palworld
Não execute o servidor de jogo como root a longo prazo. Um usuário dedicado limita as permissões de arquivo e evita que o processo do servidor tenha diretamente direitos administrativos sobre toda a VPS.
Os comandos a seguir são executados como o usuário palworld. Primeiro baixe o SteamCMD para Linux da CDN da Steam da Valve:
cd /opt/steamcmd
curl -fsSL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz -o steamcmd_linux.tar.gz
tar -xzf steamcmd_linux.tar.gz
./steamcmd.sh +quit
Depois faça login anonimamente e instale o Palworld Dedicated Server. O App ID oficial do servidor é 2394010:
/opt/steamcmd/steamcmd.sh \
+force_install_dir /opt/palworld \
+login anonymous \
+app_update 2394010 validate \
+quit
Quando aparecer Success! App '2394010' fully installed., verifique os arquivos principais:
test -x /opt/palworld/PalServer.sh
ls -lah /opt/palworld
validate é adequado para uma primeira instalação ou para reparar arquivos corrompidos. As atualizações diárias podem omiti-lo para evitar uma validação completa e leituras e gravações extras em disco a cada vez.
O diretório de configuração só é gerado depois que o servidor é iniciado pelo menos uma vez. Execute-o primeiro em primeiro plano:
cd /opt/palworld
./PalServer.sh -port=8211 -players=16 -logformat=text
Espere os logs chegarem a um estado normal de execução e pressione Ctrl+C para parar. Confirme que o diretório de configuração do Linux já existe:
test -d /opt/palworld/Pal/Saved/Config/LinuxServer
Copie uma configuração real a partir do modelo padrão oficial:
cp /opt/palworld/DefaultPalWorldSettings.ini \
/opt/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
chmod 600 /opt/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
O arquivo que realmente tem efeito é Pal/Saved/Config/LinuxServer/PalWorldSettings.ini. Editar diretamente o DefaultPalWorldSettings.ini do diretório raiz não altera as configurações do servidor; essa é a causa mais comum de "mudei a configuração mas não aconteceu nada".
Primeiro gere duas senhas aleatórias diferentes e salve-as em um gerenciador de senhas:
openssl rand -base64 32
openssl rand -base64 32
A primeira pode servir como senha de entrada dos jogadores e a segunda como senha de administrador. Edite o arquivo de configuração real:
nano /opt/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
As principais configurações desse arquivo ficam concentradas em uma linha, OptionSettings=(...). Não apague as outras chaves do modelo nem divida o exemplo em várias linhas; encontre e modifique estes campos na linha existente:
ServerName="My Palworld Server"
ServerDescription="Private server for friends"
ServerPassword="替换为玩家密码"
AdminPassword="替换为不同的管理员密码"
ServerPlayerMaxNum=16
CrossplayPlatforms=(Steam,Xbox,PS5,Mac)
bIsUseBackupSaveData=True
RESTAPIEnabled=True
RESTAPIPort=8212
RCONEnabled=False
Após salvar, verifique se os campos-chave realmente existem, mas não copie a linha inteira com senhas para tickets, chats ou repositórios públicos:
grep -oE 'ServerName="[^"]*"|ServerPlayerMaxNum=[0-9]+|CrossplayPlatforms=\([^)]*\)|bIsUseBackupSaveData=(True|False)|RESTAPIEnabled=(True|False)|RCONEnabled=(True|False)' \
/opt/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
bIsUseBackupSaveData=True faz o servidor criar um subdiretório backup no diretório de saves e manter vários backups de curto prazo conforme a política oficial. Isso aumenta a carga de disco, então você ainda deve usar NVMe e manter um backup adicional fora da máquina.
Saia do usuário palworld e volte para a conta de administrador:
exit
sudo nano /etc/systemd/system/palworld.service
Escreva o seguinte serviço de instância única:
[Unit]
Description=Palworld Dedicated Server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=palworld
Group=palworld
WorkingDirectory=/opt/palworld
ExecStart=/opt/palworld/PalServer.sh -port=8211 -players=16 -logformat=text
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=120
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
A página oficial de parâmetros avisa que, a partir do Palworld 1.0, não definir a antiga combinação -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS pode na verdade oferecer melhor desempenho, então não copie tutoriais antigos. Ajuste os parâmetros de threads apenas quando os testes de carga comprovarem um ganho.
Carregue, inicie e verifique:
sudo systemctl daemon-reload
sudo systemctl enable --now palworld
sudo systemctl status palworld --no-pager
sudo journalctl -u palworld -n 100 --no-pager
Confirme que 8211/UDP e a porta de gerenciamento local estão escutando:
sudo ss -lunp | grep ':8211'
sudo ss -lntp | grep ':8212'
Se por enquanto você não usar a REST API, mude RESTAPIEnabled de volta para False e reinicie o serviço para reduzir uma superfície de gerenciamento.
Primeiro mantenha a sessão SSH atual aberta e libere o SSH e a porta UDP do jogo:
sudo ufw allow OpenSSH
sudo ufw allow 8211/udp
sudo ufw deny 8212/tcp
sudo ufw deny 25575/tcp
sudo ufw status numbered
sudo ufw enable
O grupo de segurança do provedor de nuvem também deve liberar 8211/UDP. Abrir apenas TCP 8211 não adianta; se faltar o grupo de segurança da nuvem ou o UFW, os jogadores externos não conseguirão conectar.
Mesmo com a REST API habilitada, não libere a 8212 no grupo de segurança da nuvem. Quando precisar gerenciar a partir do seu computador pessoal, estabeleça primeiro um túnel WireGuard, Tailscale ou SSH e depois acesse por um endereço privado ou local. Um proxy comum do Cloudflare com nuvem laranja também não consegue fazer proxy direto do tráfego UDP do jogo Palworld; o registro A do domínio deve permanecer apenas DNS, ou use diretamente o IP público.
Para uso em pequena escala por jogadores da Steam, mantenha o comando de inicialização atual do systemd, e os jogadores entram pelo IP público e porta:
203.0.113.20:8211
Substitua o IP de exemplo pelo IPv4 público real da VPS. Se você quiser que jogadores de Xbox ou PS5 encontrem o servidor na lista dentro do jogo, mude ExecStart para o modo de servidor comunitário:
ExecStart=/opt/palworld/PalServer.sh -port=8211 -players=16 -publiclobby -publicip=203.0.113.20 -publicport=8211 -logformat=text
Depois recarregue e reinicie:
sudo systemctl daemon-reload
sudo systemctl restart palworld
sudo journalctl -u palworld -n 100 --no-pager
-publicport apenas declara a porta externa exibida na listagem comunitária e não altera a porta de escuta real do servidor; a porta de escuta real continua sendo determinada por -port. O registro na lista de servidores leva tempo; se por enquanto a lista não encontrar o servidor, verifique primeiro os logs, o firewall UDP e o IP público, e não abra de uma vez um monte de portas de origem desconhecida sem critério.
A REST API oficial permite consultar informações do servidor, jogadores, configurações e métricas, e também salvar o mundo, transmitir mensagens, expulsar, banir e desligar o servidor. Ela usa HTTP Basic Auth, mas a documentação oficial não fixa um nome de usuário na página de descrição geral, então baseie-se na versão atual do servidor e na configuração real do cliente, e não trate nomes de usuário padrão de tutoriais de terceiros como fatos sempre válidos.
Primeiro teste se a interface responde apenas na própria VPS:
curl -i http://127.0.0.1:8212/v1/api/info
Retornar 401 Unauthorized na verdade indica que a interface existe e a autenticação está ativa. Ao configurar scripts de gerenciamento, faça com que leiam de um arquivo de ambiente restrito ou de um gerenciador de senhas, e não escreva a senha de administrador diretamente no histórico do shell. Os programas de operação devem primeiro chamar o /save oficial para salvar o mundo e depois chamar /shutdown para desligar de forma ordenada; não use por padrão o encerramento forçado com /stop.
Se suas necessidades forem apenas atualizações e backups periódicos, você pode dispensar totalmente a REST API e fazer tudo via SSH, systemd e backups com o servidor parado, sem adicionar superfície de ataque pública só para "ter um painel".
Os backups integrados do Palworld servem para reverter rápido, mas não substituem os backups fora da máquina em casos de falha da VPS, exclusão acidental e danos ao disco. Recomenda-se usar os dois:
bIsUseBackupSaveData=Truegera backups internos de intervalo curto.- Após parar o servidor, empacote todo o
Pal/Savede sincronize para outra máquina ou armazenamento de objetos.
Crie um diretório de backup local:
sudo install -d -m 750 -o root -g palworld /var/backups/palworld
Em uma janela de manutenção, pare o servidor e empacote os saves, a configuração e os backups internos:
sudo systemctl stop palworld
sudo tar -C /opt/palworld/Pal -czf \
"/var/backups/palworld/palworld-$(date -u +%Y%m%dT%H%M%SZ).tar.gz" \
Saved
sudo systemctl start palworld
sudo systemctl is-active palworld
Liste o arquivo compactado e confira o conteúdo por amostragem:
sudo ls -lh /var/backups/palworld
sudo tar -tzf /var/backups/palworld/palworld-YYYYMMDDTHHMMSSZ.tar.gz | head -n 30
Substitua o nome de arquivo de exemplo pelo real. Mantenha pelo menos uma cópia do backup fora da máquina e faça simulações de restauração regularmente. Se precisar incluir restic, rclone, bancos de dados e Docker na recuperação de desastres, consulte o guia de backup e simulação de restauração em VPS.
Antes de restaurar, pare o serviço e verifique o arquivo compactado; nunca sobrescreva diretamente o único mundo existente:
sudo systemctl stop palworld
sudo tar -tzf /var/backups/palworld/palworld-YYYYMMDDTHHMMSSZ.tar.gz | head -n 30
sudo mv /opt/palworld/Pal/Saved \
"/opt/palworld/Pal/Saved.before-restore-$(date -u +%Y%m%dT%H%M%SZ)"
sudo tar -C /opt/palworld/Pal -xzf \
/var/backups/palworld/palworld-YYYYMMDDTHHMMSSZ.tar.gz
sudo chown -R palworld:palworld /opt/palworld/Pal/Saved
sudo systemctl start palworld
Depois verifique se o serviço, os logs e o mundo estão corretos:
sudo systemctl status palworld --no-pager
sudo journalctl -u palworld -n 150 --no-pager
sudo find /opt/palworld/Pal/Saved/SaveGames -maxdepth 3 -type f | head
Só depois de entrar no jogo e confirmar personagens, guildas, bases e a data do mundo é que a restauração é considerada bem-sucedida. Apenas "o arquivo compactado pode ser extraído" não prova que o negócio é recuperável. Mantenha Saved.before-restore-* até confirmar tudo, e não tenha pressa em apagá-lo.
Quando as versões do cliente e do servidor não coincidem, os jogadores normalmente não conseguem entrar. Antes de atualizar, avise os jogadores, salve o mundo e faça backup, e depois execute o SteamCMD:
sudo systemctl stop palworld
sudo tar -C /opt/palworld/Pal -czf \
"/var/backups/palworld/palworld-before-update-$(date -u +%Y%m%dT%H%M%SZ).tar.gz" \
Saved
sudo -u palworld /opt/steamcmd/steamcmd.sh \
+force_install_dir /opt/palworld \
+login anonymous \
+app_update 2394010 \
+quit
sudo systemctl start palworld
Verifique imediatamente após atualizar:
sudo systemctl is-active palworld
sudo journalctl -u palworld -n 150 --no-pager
sudo ss -lunp | grep ':8211'
Não sobrescreva os binários enquanto o processo estiver em execução, nem configure "reiniciar sem supervisão assim que a Steam publicar uma atualização". Uma abordagem mais segura é executar em uma janela de manutenção fixa: transmitir o aviso com antecedência, confirmar que ninguém está online, fazer backup, parar, atualizar, iniciar, verificar e só então permitir a entrada dos jogadores.
Olhe primeiro os recursos reais, em vez de adivinhar pelo "número de vCPUs":
free -h
df -h /opt/palworld /var/backups/palworld
uptime
ps -C PalServer-Linux-Test -o pid,%cpu,%mem,rss,etime,cmd
sudo journalctl -u palworld --since "30 minutes ago" --no-pager
Observe estes sinais ao longo do tempo:
- A memória se aproxima continuamente do limite, os logs mostram OOM ou o processo é morto pelo sistema: amplie a memória, não dependa do swap para aguentar.
- Um único núcleo fica sempre a plena carga mas a CPU total não é alta: prefira um nó com melhor desempenho de núcleo único em vez de apenas adicionar mais núcleos lentos.
- A latência sobe quando os jogadores se concentram em bases grandes: reduza construções excessivas, Pals trabalhadores de base e multiplicadores de alta carga, e reinicie em horários de baixa atividade.
- Saves e backups internos crescem rápido: amplie o disco, defina uma política de retenção de backups externos e monitore inodes e espaço livre.
- Instabilidade de rede ou perda de pacotes: migre para um data center mais próximo dos jogadores, com qualidade UDP e proteção mais estáveis.
Em um servidor público, não defina o limite de jogadores em 32 desde o início. Rode primeiro com 8-16 jogadores por uma semana, registre memória e CPU nos horários de pico, crescimento dos saves e latência, e depois amplie gradualmente.
Verifique em sequência o processo do serviço, a escuta UDP, o UFW e o grupo de segurança da nuvem:
sudo systemctl status palworld --no-pager
sudo ss -lunp | grep ':8211'
sudo ufw status numbered
sudo journalctl -u palworld -n 200 --no-pager
As causas mais comuns são abrir a 8211 como TCP, esquecer o UDP no grupo de segurança da nuvem, o serviço travar logo após iniciar, ou os jogadores usarem o IP público errado.
Um servidor dedicado comum não se torna automaticamente um servidor comunitário. Para aparecer na lista pública, você precisa de -publiclobby; se a detecção automática do endereço público falhar, adicione explicitamente o -publicip e a -publicport corretos. Jogadores de Xbox e PS5 não podem depender de entrar por IP direto como os da Steam, então devem usar a lista de servidores comunitários.
Verifique se você editou o arquivo real:
/opt/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
Se você editou DefaultPalWorldSettings.ini, não terá efeito. Confirme também que a sintaxe de OptionSettings=(...) não foi quebrada e reinicie o serviço após as alterações. Parâmetros como -port e -players na linha de comando substituem as configurações correspondentes, então verifique também o ExecStart do systemd ao solucionar problemas.
Primeiro preserve os saves e valide novamente os arquivos do servidor:
sudo systemctl stop palworld
sudo -u palworld /opt/steamcmd/steamcmd.sh \
+force_install_dir /opt/palworld \
+login anonymous \
+app_update 2394010 validate \
+quit
sudo systemctl start palworld
sudo journalctl -u palworld -n 200 --no-pager
Não apague Pal/Saved para "reinstalar"; ele contém o mundo, os jogadores e a configuração. O cliente também deve concluir a atualização da versão correspondente.
Verifique se o kernel registra OOM:
sudo journalctl -k --since "24 hours ago" | grep -iE 'oom|out of memory|killed process'
sudo systemctl show palworld -p NRestarts -p ExecMainStatus
Se for falta de memória, reduza primeiro o limite de jogadores e a carga, e depois amplie para 24 GB ou 32 GB. Que 8 GB "consiga iniciar" não significa que consiga hospedar de forma estável um mundo de longo prazo.
- O servidor roda como um usuário
palworlddedicado, não como root. -
systemctl is-active palworldretornaactive. -
ssmostra8211/UDPescutando. - Tanto o grupo de segurança da nuvem quanto o UFW expõem apenas a
8211/UDPnecessária. - A REST API 8212 e o RCON legado 25575 não estão expostos à internet.
- Você editou o
PalWorldSettings.inireal em LinuxServer. - A senha de jogador e a de administrador são diferentes e não aparecem no histórico do shell nem em arquivos públicos.
- Jogadores da Steam conseguem entrar pelo IP público; as necessidades de Xbox/PS5 foram alteradas para o modo de servidor comunitário.
- Os backups integrados estão ativados e há um backup fora da máquina.
- Você realmente fez uma restauração e entrou no jogo para verificar os dados do mundo.
- O processo de atualização inclui aviso, backup, parada, atualização, inicialização e verificação de logs.
- Palworld Server Guide: requisitos de execução
- Palworld Server Guide: implantar um servidor dedicado
- Palworld Server Guide: parâmetros de inicialização
- Palworld Server Guide: parâmetros de configuração
- Palworld Server Guide: REST API
- Imagem oficial do Docker do Palworld da Pocketpair e exemplo de Compose
Montar um servidor dedicado de Palworld em uma VPS não é principalmente acertar a inicialização uma vez, mas fazer bem ao mesmo tempo a memória de 16 GB ou mais, a 8211/UDP, o caminho real de configuração, o ponto de entrada multiplataforma, a supervisão com systemd, os backups em duas camadas e as atualizações controladas. Para um servidor privado pequeno, Ubuntu 24.04, SteamCMD e systemd já bastam; considere o Pterodactyl para múltiplas instâncias ou gerenciamento por várias pessoas, e equipes com padrões de contêiner maduros podem escolher a imagem oficial do Docker da Pocketpair.
Após entrar em produção, observe primeiro por uma semana com 8-16 jogadores e depois amplie conforme a memória nos horários de pico, a carga de núcleo único, o crescimento dos saves e a qualidade da rede. Desde que a REST API não fique exposta à internet, você faça backup antes de atualizar e o processo de restauração tenha sido realmente testado, este servidor terá a base para operar a longo prazo.