Tutoriais de VPS
Criar um servidor dedicado de Valheim em VPS (2026): SteamCMD, portas, Crossplay, backups e atualizações automáticas
Monte do zero um servidor dedicado de Valheim em VPS Ubuntu com SteamCMD, cobrindo App ID 896660, portas 2456–2457, Crossplay, migração de mundos, administradores, backup e restauração e atualizações automáticas.

Se você quer explorar Valheim e construir bases com amigos a longo prazo sem que um jogador precise deixar o PC ligado, um servidor dedicado de Valheim auto-hospedado é a opção mais estável. O servidor fica online 24 horas por dia, e você controla os arquivos do mundo, a senha de acesso, a lista de administradores, os backups e os horários de atualização, o que também atende a equipes espalhadas por fusos horários diferentes.
Este artigo usa Ubuntu 24.04 LTS, SteamCMD, o servidor Linux oficial do Valheim e systemd como exemplos para concluir a instalação, as portas 2456–2457, os backends Steam e Crossplay, a migração de mundos, a lista de administradores, os backups automáticos, as atualizações e a solução de problemas. O texto principal não depende de imagens de jogo de terceiros; a seção de mods apenas explica riscos e não trata mods da comunidade como recursos oficiais.
O FAQ oficial do Valheim informa que um servidor suporta até 10 jogadores, mas não publica um conjunto de requisitos mínimos para cenários de VPS que garanta determinada concorrência. Os valores abaixo são pontos de partida práticos para compra e teste de carga, não uma promessa de desempenho da Iron Gate:
| Escala de uso | Ponto de partida sugerido do VPS | Disco | Cenário adequado |
|---|---|---|---|
| Servidor vanilla de 2–5 jogadores | 2–4 vCPUs de alto desempenho, 4–8 GB de RAM | 40 GB NVMe | Mundo privado, construção leve |
| Servidor de longo prazo de 6–10 jogadores | 4 vCPUs de alto desempenho, 8 GB de RAM | 60 GB NVMe | Bases grandes, exploração multijogador |
| Servidor com mods ou várias instâncias | 6+ núcleos, 12–16 GB de RAM | 80 GB+ NVMe | Vários mundos, logs e backups extras |
A simulação de mundo do Valheim e as bases grandes amplificam problemas de CPU de núcleo único, oscilação de rede e latência de armazenamento. Não olhe apenas para a quantidade de vCPUs; considere também se o provedor está com sobrevenda no horário de pico da noite, perda de pacotes UDP, preço dos snapshots, tratamento de DDoS e o custo de trocar de um nó com defeito. Ao escolher o data center, priorize a proximidade dos principais jogadores; você pode começar pela configuração de VPS para servidores de jogos e escolha de linha de rede.
O servidor não precisa de GPU dedicada. O disco deve acomodar ao mesmo tempo o servidor, o espaço temporário de atualização do SteamCMD, os arquivos do mundo e o cache de backup externo; não reduza a partição raiz a poucos GB livres só para economizar alguns dólares.
| Opção | Vantagens | Custo | Para quem serve |
|---|---|---|---|
| SteamCMD + systemd | Caminhos transparentes, poucas dependências, fácil de ver logs e restaurar | Gerenciado principalmente por SSH | Um único VPS, um mundo de Valheim |
| Script Docker oficial | Pode contornar GLIBC/GLIBCXX desatualizados | Exige entender volumes e permissões de contêiner | Sistemas antigos ou experiência prévia em operação de Docker |
| Pterodactyl | Painel web, cotas, várias instâncias e gestão de usuários | Manutenção extra do Panel, do Wings e do banco de dados | Hospedar vários servidores de jogos ou operação por várias pessoas |
O servidor oficial do Valheim inclui docker_start_server.sh, mas o Ubuntu 24.04 já atende aos requisitos de GLIBC listados oficialmente. Este artigo escolhe SteamCMD nativo + systemd para que você veja claramente os parâmetros de inicialização, os diretórios de save e os sinais de parada. Se você também hospeda Minecraft, CS2, Rust e Valheim juntos, pode mudar para o guia de implantação do painel de servidores de jogos Pterodactyl.
O Valheim tem dois métodos de conexão:
| Backend | Método de inicialização | Requisitos de rede | Jogadores adequados |
|---|---|---|---|
| Steam | Não adicionar -crossplay | 2456–2457 UDP deve ser acessível pela internet pública | Todos os jogadores no Steam |
| Crossplay | Adicionar -crossplay | Retransmitido via PlayFab, não exige encaminhamento de portas no roteador | Steam misturado com outras plataformas |
O guia oficial informa que um servidor Crossplay pode ser conectado por IP público, porta, código de entrada ou lista de servidores, mas não pode ser conectado pelo endereço de loopback local nem por um IP de LAN. Um VPS não tem NAT de banda larga residencial, então o backend Steam costuma ser mais direto; ative o Crossplay apenas quando a equipe realmente incluir jogadores de plataformas que não sejam Steam.
Este artigo primeiro implanta o backend Steam e abre 2456–2457 UDP, depois explica separadamente como mudar para Crossplay. Não misture ao mesmo tempo vários plugins de rede de origem desconhecida, ou você vai complicar problemas de versão ou de conexão.
Usando uma conta de administrador com privilégios sudo, atualize o sistema e instale o SteamCMD e as dependências Linux listadas no guia oficial do Valheim:
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl ca-certificates tar lib32gcc-s1 libatomic1 libpulse0 libpulse-dev ufw
Crie uma conta valheim que não seja usada para login diário, além de um diretório fixo:
sudo adduser --disabled-password --gecos "" valheim
sudo install -d -o valheim -g valheim /opt/steamcmd
sudo install -d -o valheim -g valheim /opt/valheim
sudo install -d -o valheim -g valheim /var/lib/valheim
sudo install -d -m 750 -o root -g valheim /var/backups/valheim
O servidor não deve rodar como root. Uma conta dedicada limita os privilégios do processo e evita confusão de propriedade de arquivos após as atualizações do SteamCMD.
Mude para a conta de serviço e baixe a versão Linux do SteamCMD da CDN Steam da Valve:
sudo -iu valheim
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
A primeira execução atualiza o SteamCMD. Confirme que o ponto de entrada é executável:
test -x /opt/steamcmd/steamcmd.sh
O App ID Steam do Valheim Dedicated Server é 896660. Primeiro tente instalar com login anônimo; se você acabou de concluir outro servidor de jogo de sobrevivência, também pode comparar com o tutorial de SteamCMD para servidor dedicado de Palworld para não misturar App IDs, portas e diretórios de save.
/opt/steamcmd/steamcmd.sh \
+force_install_dir /opt/valheim \
+login anonymous \
+app_update 896660 validate \
+quit
validate é adequado para uma primeira instalação ou para reparar arquivos corrompidos; as atualizações diárias normalmente não precisam validar todos os arquivos a cada vez. Se o Steam retornar no momento falta de licença, falta de informações do app ou falha no download anônimo, não escreva a senha da sua conta pessoal em um script. Prepare uma conta Steam separada que possua o Valheim, faça login interativo no SteamCMD e conclua a verificação do Steam Guard, e então execute app_update 896660 validate.
Verifique o servidor Linux e o script de inicialização oficial:
test -x /opt/valheim/valheim_server.x86_64
test -f /opt/valheim/start_server.sh
ls -lh /opt/valheim/valheim_server.x86_64
du -sh /opt/valheim
exit
Não modifique diretamente o start_server.sh oficial. O guia oficial alerta que esse arquivo pode ser sobrescrito durante as atualizações do Steam; a unit do systemd deve guardar os parâmetros personalizados separadamente.
A senha do jogo não deve ser escrita em repositórios públicos nem nos comandos do artigo. Crie o arquivo de ambiente:
sudo install -d -m 700 -o root -g root /etc/valheim
sudo nano /etc/valheim/valheim.env
Escreva:
SERVER_NAME="My Valheim Server"
WORLD_NAME="Dedicated"
SERVER_PASSWORD="REPLACE_WITH_A_LONG_RANDOM_PASSWORD"
Gere uma senha aleatória:
openssl rand -base64 24
Substitua o resultado em SERVER_PASSWORD e então restrinja as permissões:
sudo chown root:root /etc/valheim/valheim.env
sudo chmod 600 /etc/valheim/valheim.env
O systemd lê esse arquivo como PID 1 e depois inicia o jogo com o usuário valheim. Administradores com privilégios root ainda conseguem ver os parâmetros de inicialização do serviço, então não abra a conta do servidor para usuários não confiáveis.
Crie a unit:
sudo nano /etc/systemd/system/valheim.service
Escreva:
[Unit]
Description=Valheim Dedicated Server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=valheim
Group=valheim
WorkingDirectory=/opt/valheim
EnvironmentFile=/etc/valheim/valheim.env
Environment=SteamAppId=892970
Environment=LD_LIBRARY_PATH=/opt/valheim/linux64
ExecStart=/opt/valheim/valheim_server.x86_64 -nographics -batchmode -name ${SERVER_NAME} -port 2456 -world ${WORLD_NAME} -password ${SERVER_PASSWORD} -savedir /var/lib/valheim -public 1 -saveinterval 1800 -backups 4 -backupshort 7200 -backuplong 43200
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=120
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
Aqui -savedir /var/lib/valheim é definido explicitamente para que os arquivos do mundo não se espalhem pelo diretório Unity padrão da conta de serviço. A documentação oficial informa que -port 2456 usa tanto a porta especificada quanto port+1, ou seja, o padrão 2456–2457; KillSignal=SIGINT faz o systemd simular o método de parada Ctrl+C recomendado oficialmente, deixando tempo para o mundo ser salvo.
Carregue e inicie:
sudo systemctl daemon-reload
sudo systemctl enable --now valheim
sudo systemctl status valheim --no-pager
sudo journalctl -u valheim -n 150 --no-pager
Quando o log mostra Game server connected, a documentação oficial considera que o serviço já pode aceitar conexões. Criar um mundo pela primeira vez pode levar um tempo; não force o encerramento do processo durante a inicialização.
Mantenha a sessão SSH atual aberta, confirme primeiro que o SSH está liberado e depois abra as portas padrão do Valheim:
sudo ufw allow OpenSSH
sudo ufw allow 2456:2457/udp
sudo ufw status numbered
sudo ufw enable
O grupo de segurança do provedor de nuvem também deve adicionar a mesma faixa de portas UDP. Verifique em que o serviço está realmente escutando:
sudo ss -lunp | grep -E ':2456|:2457'
O erro mais comum é alterar apenas o UFW e esquecer o grupo de segurança da nuvem, ou escrever a regra por engano apenas como TCP. Para uma única instância do backend Steam, abra primeiro 2456–2457 UDP; não libere toda uma faixa de portas altas sem justificativa.
Se o domínio valheim.example.com aponta para o VPS, basta um registro A normal. O proxy HTTP de nuvem laranja da Cloudflare não consegue fazer proxy do tráfego UDP do jogo Valheim; configure como DNS only, ou faça os jogadores usarem diretamente o IP público.
Na tela de entrar no jogo do Valheim, adicione um servidor e digite:
203.0.113.20:2456
Substitua o endereço de exemplo pelo IPv4 público do VPS. A forma com domínio é:
valheim.example.com:2456
A lista de servidores pode demorar para atualizar. Se não encontrar, prefira a entrada direta e verifique ao mesmo tempo:
sudo systemctl is-active valheim
sudo journalctl -u valheim -n 200 --no-pager
sudo ss -lunp | grep -E ':2456|:2457'
sudo ufw status numbered
Quando a equipe incluir jogadores de plataformas que não sejam Steam, adicione isto ao final de ExecStart:
-crossplay
Recarregue e reinicie:
sudo systemctl daemon-reload
sudo systemctl restart valheim
sudo journalctl -u valheim -n 200 --no-pager
A documentação oficial informa que o Crossplay usa retransmissão via PlayFab, não exige encaminhamento de portas e suporta conexão por IP público, porta, código de entrada ou lista de servidores. No entanto, o Crossplay não pode se conectar pelo endereço de loopback local nem por um IP de LAN; ao testar, use um cliente externo e as informações de entrada exibidas oficialmente.
Se todos forem jogadores do Steam, não ative o Crossplay às cegas só porque "talvez seja mais rápido". Os dois backends diferem em descoberta, conexão e comportamento em falhas; fixe uma opção e conclua a aceitação primeiro, depois considere mudar.
A documentação oficial define três arquivos de permissão:
adminlist.txt: administradores.bannedlist.txt: jogadores proibidos de entrar.permittedlist.txt: jogadores permitidos de entrar; uma vez gravada a lista, os demais são recusados.
Como este artigo usa -savedir /var/lib/valheim, primeiro localize os arquivos realmente gerados:
sudo find /var/lib/valheim -maxdepth 2 -type f \
\( -name 'adminlist.txt' -o -name 'bannedlist.txt' -o -name 'permittedlist.txt' \) \
-print
Informe um Platform User ID por linha no formato [Platform]_[User ID], diferenciando maiúsculas e minúsculas. Esse ID pode ser obtido no log do servidor ou no painel F2 dentro do jogo. Não adivinhe IDs a partir de apelidos e não trate permittedlist.txt como um arquivo de anotações comum, ou você vai recusar acidentalmente todos os jogadores não listados.
Após as alterações, reinicie e revise os logs:
sudo systemctl restart valheim
sudo journalctl -u valheim -n 120 --no-pager
Um mundo geralmente é composto por um arquivo .db e um .fwl com o mesmo nome. Antes de migrar, primeiro mude os saves na nuvem para locais no PC original e saia do jogo, depois copie os arquivos em par; não envie apenas um deles.
No VPS, pare o serviço e inspecione a estrutura de save atual:
sudo systemctl stop valheim
sudo find /var/lib/valheim -maxdepth 3 -type f | sort
Envie os arquivos do mundo existente para o diretório worlds_local gerado pelo servidor; suponha que o mundo se chame MyWorld:
sudo install -d -o valheim -g valheim /var/lib/valheim/worlds_local
sudo cp /tmp/MyWorld.db /var/lib/valheim/worlds_local/MyWorld.db
sudo cp /tmp/MyWorld.fwl /var/lib/valheim/worlds_local/MyWorld.fwl
sudo chown valheim:valheim /var/lib/valheim/worlds_local/MyWorld.db
sudo chown valheim:valheim /var/lib/valheim/worlds_local/MyWorld.fwl
Altere WORLD_NAME em /etc/valheim/valheim.env para MyWorld, depois inicie e verifique:
sudo systemctl start valheim
sudo journalctl -u valheim -n 200 --no-pager
Se o servidor gerar um mundo novo, normalmente é porque os arquivos foram colocados no diretório errado, o nome do arquivo não coincide em maiúsculas e minúsculas, .db e .fwl não estão em par, ou WORLD_NAME não coincide com o nome do arquivo. Mantenha a cópia original e só limpe os arquivos temporários de upload depois de confirmar que as construções do mundo e os pontos de spawn dos personagens estão corretos.
Os parâmetros de inicialização do systemd deste artigo já incluem:
-saveinterval 1800 -backups 4 -backupshort 7200 -backuplong 43200
Os significados oficiais são os seguintes:
- Salvar o mundo a cada 1800 segundos.
- Manter 4 backups automáticos.
- O primeiro intervalo de backup de ciclo curto é de 7200 segundos.
- Os intervalos de backup de ciclo longo seguintes são de 43200 segundos.
Esses backups automáticos conseguem cobrir erros recentes, mas não substituem backups fora da máquina. Se o disco falhar, a conta for comprometida ou o VPS inteiro for excluído, os backups no mesmo disco se perdem junto.
Primeiro faça um backup manual consistente:
sudo systemctl stop valheim
sudo tar -C /var/lib/valheim -czf \
"/var/backups/valheim/valheim-save-$(date -u +%Y%m%dT%H%M%SZ).tar.gz" \
.
sudo systemctl start valheim
sudo systemctl is-active valheim
Inspecione o conteúdo do arquivo:
sudo ls -lh /var/backups/valheim
sudo tar -tzf /var/backups/valheim/valheim-save-YYYYMMDDTHHMMSSZ.tar.gz | head -n 80
Substitua o nome de arquivo de exemplo pelo real. Sincronize pelo menos um backup para outra máquina ou armazenamento de objetos e defina um período de retenção. Para um plano externo mais completo, consulte o guia de backup e simulação de restauração em VPS.
Pare o serviço antes de restaurar e primeiro preserve o diretório de save atual:
sudo systemctl stop valheim
sudo tar -tzf /var/backups/valheim/valheim-save-YYYYMMDDTHHMMSSZ.tar.gz | head -n 80
sudo mv /var/lib/valheim \
"/var/lib/valheim.before-restore-$(date -u +%Y%m%dT%H%M%SZ)"
sudo install -d -o valheim -g valheim /var/lib/valheim
sudo tar -C /var/lib/valheim -xzf \
/var/backups/valheim/valheim-save-YYYYMMDDTHHMMSSZ.tar.gz
sudo chown -R valheim:valheim /var/lib/valheim
sudo systemctl start valheim
Verifique os logs, o nome do mundo, as construções e as listas de permissão:
sudo systemctl status valheim --no-pager
sudo journalctl -u valheim -n 200 --no-pager
sudo find /var/lib/valheim -maxdepth 3 -type f | sort
A restauração só é concluída após confirmar que as conexões multijogador e o progresso do mundo estão corretos. Mantenha valheim.before-restore-* até a aceitação e não apague imediatamente a única cópia de reversão.
Quando as versões do cliente e do servidor não coincidem, os jogadores veem incompatible version. Crie um script de manutenção executável apenas pelo root:
sudo nano /usr/local/sbin/update-valheim-server
Escreva:
#!/usr/bin/env bash
set -euo pipefail
backup_dir=/var/backups/valheim
stamp=$(date -u +%Y%m%dT%H%M%SZ)
was_active=0
install -d -m 750 -o root -g valheim "$backup_dir"
if systemctl is-active --quiet valheim; then
was_active=1
systemctl stop valheim
fi
restart_service() {
if [ "$was_active" -eq 1 ]; then
systemctl start valheim
fi
}
trap restart_service EXIT
tar -C /var/lib/valheim -czf \
"$backup_dir/valheim-before-update-$stamp.tar.gz" \
.
sudo -u valheim /opt/steamcmd/steamcmd.sh \
+force_install_dir /opt/valheim \
+login anonymous \
+app_update 896660 \
+quit
Defina as permissões e teste em uma janela de manutenção:
sudo chown root:root /usr/local/sbin/update-valheim-server
sudo chmod 750 /usr/local/sbin/update-valheim-server
sudo /usr/local/sbin/update-valheim-server
sudo systemctl is-active valheim
sudo journalctl -u valheim -n 150 --no-pager
O script para o serviço primeiro e empacota todo o diretório de save; se o SteamCMD falhar, o tratador de saída ainda tenta restaurar o estado original do serviço. Se o login anônimo não estiver disponível, não codifique a senha do Steam no script; atualize de forma interativa em uma janela de manutenção, ou use um esquema de conta dedicada com isolamento de credenciais mais rigoroso.
Ative o timer apenas depois de confirmar que o SteamCMD anônimo funciona a longo prazo e que os jogadores aceitam uma janela de manutenção fixa. Crie o serviço:
sudo nano /etc/systemd/system/valheim-update.service
[Unit]
Description=Update Valheim Dedicated Server
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/update-valheim-server
Crie o timer:
sudo nano /etc/systemd/system/valheim-update.timer
[Unit]
Description=Daily Valheim update maintenance window
[Timer]
OnCalendar=*-*-* 05:40:00
RandomizedDelaySec=10m
Persistent=true
[Install]
WantedBy=timers.target
Ative e verifique a próxima execução:
sudo systemctl daemon-reload
sudo systemctl enable --now valheim-update.timer
systemctl list-timers valheim-update.timer
Antes de atualizações grandes, o mais seguro é avisar os jogadores, fazer backup manual, atualizar o servidor e então usar um cliente de teste para confirmar que é possível entrar no mundo. Tarefas agendadas não devem parar o servidor de repente durante uma luta de chefe ou uma construção multijogador.
O FAQ oficial do Valheim informa que conteúdo fixo, como novo terreno, construções ou masmorras, normalmente só aparece em áreas anteriormente inexploradas; as áreas exploradas também incluem um raio de cerca de 500 metros ao redor das pegadas dos jogadores. Antes de uma versão importante, você deve:
- Parar o serviço e fazer um backup externo.
- Ler as notas oficiais do patch e confirmar as versões do servidor e do cliente.
- Após atualizar, um administrador deve entrar primeiro para testar.
- Para experimentar conteúdo novo, viaje para áreas inexploradas ou avalie se deve criar um novo mundo.
Não apague diretamente .db, .fwl ou os arquivos de backup só para atualizar conteúdo novo. Reiniciar o mundo é uma decisão de negócio irreversível e deve ser confirmada por todos os jogadores.
O FAQ oficial do Valheim afirma explicitamente que mods não têm suporte oficial. Ao rodar BepInEx ou outros mods da comunidade, registre também as versões dos mods, os arquivos de configuração e as fontes de instalação, e desative as atualizações automáticas antes das atualizações do jogo.
Se ocorrer incompatibilidade de versão, personagens que não conseguem entrar ou anomalias no mundo, primeiro teste o servidor vanilla em uma cópia de backup. Não deixe o script de atualização sobrescrever automaticamente os arquivos de mods, nem trate assemblies de servidor não verificados como binários oficiais.
Primeiro registre dados reais de pico:
free -h
df -h /opt/valheim /var/lib/valheim /var/backups/valheim
uptime
ps -C valheim_server -o pid,%cpu,%mem,rss,etime,cmd
sudo journalctl -u valheim --since "30 minutes ago" --no-pager
Fique atento a:
- Saturação contínua de CPU de núcleo único perto de bases grandes: prefira um nó com melhor desempenho de núcleo único e menor sobrevenda.
- Latência e reversões durante a exploração multijogador: verifique perda de pacotes UDP, latência de disco e logs de save.
- Memória crescendo continuamente ou OOM: desative primeiro os mods e depois avalie ampliar.
- Mundo e backups crescendo rápido: verifique o diretório de save, a quantidade retida e a estratégia de sincronização externa.
- Lag no pico da noite com dia normal: mais provavelmente sobrevenda dos vizinhos ou congestionamento de linha, não apenas especificações insuficientes.
Não julgue apenas pela CPU média do painel. O lag do Valheim costuma ocorrer em bases específicas, no momento de salvar ou quando os jogadores exploram separados; reproduza com horários, logs e localizações dos jogadores.
Verifique o status, a unit completa e os logs:
sudo systemctl status valheim --no-pager
sudo journalctl -u valheim -n 250 --no-pager
sudo systemctl cat valheim
Verifique se libatomic1, libpulse0 e libpulse-dev existem, se LD_LIBRARY_PATH aponta para /opt/valheim/linux64 e se a conta de serviço é proprietária de /opt/valheim e /var/lib/valheim.
Confirme o binário, a rede e o status do serviço Steam:
test -x /opt/valheim/valheim_server.x86_64
sudo -u valheim test -w /var/lib/valheim
sudo journalctl -u valheim -n 250 --no-pager | grep -iE 'error|steam|connected|failed'
Na primeira inicialização, aguarde a geração do mundo. Se o log mostrar bibliotecas ausentes, não reinicie repetidamente; instale as dependências pelos nomes ausentes. Se o backend Steam estiver temporariamente indisponível, mantenha os arquivos do mundo e aguarde a recuperação do serviço.
Verifique em ordem o serviço, a escuta, o firewall e o grupo de segurança da nuvem:
sudo systemctl is-active valheim
sudo ss -lunp | grep -E ':2456|:2457'
sudo ufw status numbered
sudo journalctl -u valheim -n 200 --no-pager
Use o IP público para conexão direta e descartar DNS. Para o backend Steam, confirme que 2456–2457 UDP estão abertos; para o Crossplay, verifique se foi usado por engano um endereço interno ou de loopback, e os logs de conexão do PlayFab.
Pare o serviço primeiro e atualize o App ID 896660:
sudo /usr/local/sbin/update-valheim-server
sudo systemctl is-active valheim
sudo journalctl -u valheim -n 200 --no-pager
Confirme que cliente e servidor estão no mesmo branch estável ou de teste. Em servidores com mods, verifique também o BepInEx e a versão de cada mod; não resolva a incompatibilidade de versão apagando arquivos do mundo.
Pare o serviço e verifique o nome do mundo e os arquivos:
sudo systemctl stop valheim
sudo grep '^WORLD_NAME=' /etc/valheim/valheim.env
sudo find /var/lib/valheim -maxdepth 3 -type f \
\( -name '*.db' -o -name '*.fwl' \) -print
Certifique-se de que os nomes base de WORLD_NAME e .db/.fwl sejam exatamente iguais, de que os arquivos estejam no diretório de save realmente usado pelo serviço e de que pertençam a valheim:valheim. Após corrigir, faça backup dos conjuntos de arquivos novo e antigo antes de iniciar para verificar.
O serviço precisa ser reiniciado após a alteração do arquivo de ambiente:
sudo systemctl restart valheim
sudo systemctl show valheim -p EnvironmentFiles
sudo journalctl -u valheim -n 120 --no-pager
Ao modificar a própria unit do systemd, execute também primeiro systemctl daemon-reload. Não defina o mesmo parâmetro repetidamente em vários scripts de inicialização, units e painéis, ou fica difícil saber qual valor acaba valendo.
- O SteamCMD instalou o Valheim Dedicated Server App ID 896660.
- O serviço roda com o usuário dedicado
valheim, não com root. -
systemctl is-active valheimretornaactive. - O log mostra
Game server connected. - O 2456–2457 UDP do backend Steam está liberado tanto no UFW quanto no grupo de segurança da nuvem.
- O Crossplay só é ativado quando realmente há jogadores multiplataforma, e é testado com um cliente externo.
-
/etc/valheim/valheim.envtem permissões 600 e proprietário root. - Os arquivos
.dbe.fwldo mundo existem em par, com nomes que coincidem comWORLD_NAME. - Administradores e lista de permissões contêm Platform User IDs que diferenciam maiúsculas e minúsculas.
- Os parâmetros oficiais de salvamento automático estão em vigor.
- Antes de atualizar, o serviço é parado e um backup é feito, mantendo pelo menos um fora da máquina.
- Uma restauração do mundo foi realmente realizada, verificando construções, pontos de spawn dos personagens e listas de permissão.
- Servidores com mods têm as atualizações automáticas não testadas desativadas.
Rodar o Valheim de forma estável em um VPS não é só iniciar o servidor; o ponto-chave é fixar o diretório de save, distinguir corretamente os backends Steam e Crossplay, abrir 2456–2457 UDP, usar SIGINT para desligamento gracioso e incluir backups do mundo e simulações de restauração no processo de atualização.
Um mundo vanilla de 2–5 jogadores pode começar com 2–4 vCPUs de alto desempenho e 4–8 GB de RAM, enquanto chegar perto de 10 jogadores, bases grandes ou servidores com mods deve escalar gradualmente com base nos picos reais de CPU, memória e oscilação de rede. Antes do lançamento, concluir um teste de conexão externa, migração de mundo, atualização de versão e restauração reduz reversões e indisponibilidade mais do que adicionar portas ou automação às cegas.