Criar Servidor MTA:SA do Zero em VPS Windows: Guia Completo

Aprenda a criar um servidor MTA:SA do zero em VPS Windows: download oficial, configuração de mtaserver.conf, portas, ACL e primeira conexão estável.

Subir um servidor Multi Theft Auto: San Andreas em VPS Windows não exige stack complexa, mas existem detalhes que travam quem está começando: porta 22126 UDP fechada e o servidor nunca aparece na lista pública, ACL mal configurada e admin não consegue logar, ou mtaserver.conf editado com tag malformada e o processo nem inicia. Este tutorial cobre o caminho completo do zero — download do pacote oficial, configuração mínima funcional, firewall, ACL e validação de conectividade.

O público-alvo é quem nunca rodou um MTA Server e quer começar com base sólida pra evoluir depois pra freeroam, race ou gamemode customizado em Lua. Tempo de execução: cerca de 30 minutos do primeiro RDP até o servidor aparecer no client e aceitar a primeira conexão real.

A escolha por Windows Server faz sentido pra quem prefere ambiente familiar, RDP direto pra ajustar configs e ecossistema de tools .NET pra automação. Linux roda o mesmo binário com tarball próprio, mas foge do escopo deste guia.

Pré-requisitos

O que você precisa antes de começar

VPS Windows Server 2019 ou 2022 com no mínimo 2 vCPUs, 4 GB de RAM e 20 GB de disco SSD. Acesso administrativo via RDP, cliente MTA:SA 1.6 instalado na sua máquina pra testar a conexão, e cópia legítima do GTA: San Andreas (o cliente MTA é gratuito; o jogo base é requisito do client).

OS recomendado Windows Server 2022
Versão MTA 1.6 (estável)
Porta game 22003 UDP
Porta ASE/lista 22126 UDP
Porta HTTP 22005 TCP
RAM mínima 4 GB

Se você está dimensionando capacidade, o gargalo principal do MTA Server é CPU single-thread — o loop principal do servidor não distribui carga entre núcleos. Por isso 2 vCPUs de frequência alta entregam mais que 4 vCPUs mais lentas. Disco SSD evita stutter quando o servidor faz hot-reload de resources.

Baixar o pacote oficial do MTA Server

O servidor MTA é distribuído como ZIP pela MTA Team no site oficial. Sempre baixe da fonte canônica: pacotes de terceiros frequentemente vêm com resources injetados ou binários patched que comprometem a segurança da VPS inteira.

01

Conecte na VPS via RDP usando as credenciais do provisionamento. Abra o PowerShell como administrador e crie a estrutura de pastas:

New-Item -Path "C:\MTAServer" -ItemType Directory
Set-Location "C:\MTAServer"

Manter o servidor fora de C:\Program Files\ evita problemas de permissão do UAC quando o processo tenta escrever logs e cache de scripts.

02

Baixe o pacote 1.6 estável direto do site oficial usando PowerShell:

Invoke-WebRequest -Uri "https://linux.mtasa.com/dl/multitheftauto_linux_x64.tar.gz" -OutFile "mta.tar.gz"

Para Windows, o instalador oficial está em https://mtasa.com/. Faça o download via browser na própria VPS e extraia o conteúdo dentro de C:\MTAServer. O instalador Windows ajusta variáveis de ambiente e cria a estrutura server/, mods/deathmatch/ e os binários MTA Server.exe.

03

Verifique a estrutura final esperada:

C:\MTAServer\
  ├── MTA Server.exe
  ├── server\
  │   └── mods\
  │       └── deathmatch\
  │           ├── mtaserver.conf
  │           ├── acl.xml
  │           └── resources\
  └── x64\

Se faltar a pasta resources, o servidor sobe mas não tem nenhum modo de jogo carregado — clients conectam e ficam olhando o mapa vazio.

Configurar o mtaserver.conf

O arquivo mtaserver.conf define identidade, portas, ACL e quais resources sobem no boot. É XML — qualquer tag mal fechada impede o binário de iniciar.

04

Abra C:\MTAServer\server\mods\deathmatch\mtaserver.conf no Notepad++ (não use o Notepad padrão — ele bagunça encoding em arquivos com caracteres não-ASCII). Ajuste os blocos essenciais:

<servername>Meu Servidor Hostini</servername>
<serverip>auto</serverip>
<serverport>22003</serverport>
<httpport>22005</httpport>
<maxplayers>32</maxplayers>
<ase>1</ase>
<donotbroadcastlan>0</donotbroadcastlan>

<ase>1</ase> é o que registra seu servidor na lista pública via UDP 22126. Sem isso, ninguém te encontra mesmo com tudo configurado.

05

Configure os resources que sobem no boot. Procure o bloco <resource ... /> e ajuste pro modo freeroam padrão:

<resource src="freeroam" startup="1" protected="0" />
<resource src="admin" startup="1" protected="0" />
<resource src="parachute" startup="1" protected="0" />

Esses três cobrem o mínimo funcional: spawn de player, painel admin web na porta HTTP e item de paraquedas. Você pode evoluir depois pra race, deathmatch oficial ou gamemode customizado.

Senha de admin antes de subir

Antes de iniciar o servidor pela primeira vez, defina uma senha forte pro usuário admin em acl.xml ou via comando addaccount no console. Servidor MTA sem senha de admin exposto na internet vira alvo em horas — bots varrem a porta 22003 procurando ACL default.

Liberar portas no firewall do Windows

Por padrão o Windows Server bloqueia todas as portas inbound exceto RDP. É necessário criar regras explícitas pras três portas do MTA antes do primeiro boot.

06

Abra o PowerShell como administrador e crie as regras de firewall:

New-NetFirewallRule -DisplayName "MTA Server Game" -Direction Inbound `
  -Protocol UDP -LocalPort 22003 -Action Allow

New-NetFirewallRule -DisplayName "MTA Server ASE" -Direction Inbound `
  -Protocol UDP -LocalPort 22126 -Action Allow

New-NetFirewallRule -DisplayName "MTA Server HTTP" -Direction Inbound `
  -Protocol TCP -LocalPort 22005 -Action Allow

A porta 22003 é o tráfego de gameplay (sincronização de posição, RPC entre client e server). A 22126 é o ASE — Anti-cheat Stats Exchange, usado pelo servidor master da MTA pra pingar o seu e listar publicamente. A 22005 TCP é o servidor HTTP interno que serve scripts client-side downloadáveis durante a conexão.

07

Verifique se as regras estão ativas:

Get-NetFirewallRule -DisplayName "MTA Server*" | Format-Table DisplayName, Enabled, Direction, Action

Saída esperada: três linhas com Enabled True e Action Allow. Se aparecer False em alguma, rode Set-NetFirewallRule -DisplayName "MTA Server Game" -Enabled True.

Primeiro boot e validação

Com tudo configurado, é hora de subir o servidor e confirmar que o tráfego está fluindo.

08

Execute o servidor pela primeira vez direto pelo binário:

Set-Location "C:\MTAServer"
.\"MTA Server.exe"

Você verá o console abrir com log de inicialização. As linhas críticas são Resource 'freeroam' loaded, Networking started on port 22003 e ASE service started. Se aparecer WARNING: Resource failed to load, anote o nome — algum arquivo está corrompido ou ausente.

09

Crie a conta de admin direto no console do servidor. Digite:

addaccount admin SenhaForteAqui123
aclrequest list admin

O primeiro comando cria o usuário; o segundo associa ao grupo Admin definido em acl.xml. Sem isso, mesmo logado você não consegue rodar comandos privilegiados in-game.

10

Da sua máquina local, abra o cliente MTA:SA e tente conectar diretamente pelo IP. No menu principal, vá em Quick Connect e insira:

ip-da-sua-vps:22003

Se conectar e spawnar, o servidor está operacional. Em paralelo, aguarde 5-10 minutos e procure pelo nome do servidor na aba Internet — esse é o tempo médio que o master server leva pra propagar.

Rodar como serviço Windows

Pra produção, registre o MTA Server.exe como serviço Windows usando o NSSM. Isso garante auto-start no boot da VPS, restart automático em crash e logs separados em arquivo. O NSSM é open source e leva 5 minutos pra configurar — vale o investimento sobre rodar dentro de uma sessão RDP que cai quando você desconecta.

Verificação

A forma técnica de confirmar que tudo funcionou em 3 camadas:

# 1. Processo rodando
Get-Process "MTA Server"

# 2. Portas abertas escutando
netstat -an | Select-String "22003|22005|22126"

# 3. Firewall liberando
Test-NetConnection -ComputerName ip-da-vps -Port 22003 -InformationLevel Detailed

A saída esperada do netstat mostra UDP 0.0.0.0:22003, TCP 0.0.0.0:22005 LISTENING e UDP 0.0.0.0:22126. Se faltar alguma, o mtaserver.conf foi salvo com tag malformada ou o binário não tem permissão pra abrir a porta.

Resolução de problemas comuns

Servidor não aparece na lista pública

Verifique nessa ordem: <ase>1</ase> está no mtaserver.conf, a porta 22126 UDP está liberada no firewall, e o IP da VPS é público (não RFC 1918). Aguarde 10 minutos após o boot — o master server faz polling em intervalos longos.

”Connection timeout” no client mesmo com servidor rodando

Quase sempre é firewall: ou o Windows está bloqueando a 22003 UDP, ou o provedor da VPS tem firewall de rede acima do OS. Teste com Test-NetConnection de uma máquina externa pra confirmar onde o pacote morre.

Resources não carregam após edit no mtaserver.conf

XML mal-formado é a causa em 90% dos casos. Abra o arquivo em um validador XML online ou no Notepad++ com plugin XML Tools — qualquer tag não fechada quebra o parse e o servidor ignora todos os resources que vêm depois do erro.

Nunca rode o servidor como SYSTEM permanente

Em ambiente de produção, crie um usuário dedicado (MTAService ou similar) com permissões limitadas só pra pasta C:\MTAServer e rode o serviço como esse usuário. Servidor MTA rodando como SYSTEM significa que qualquer exploit em resource customizado dá acesso total à VPS.

Próximos passos

Com o servidor base funcionando, os caminhos naturais de evolução são:

  • Instalar um gamemode completo (Race, Freeroam customizado, MTA RPG) baixando do Community MTA
  • Configurar MySQL pra persistir contas, stats e inventário de players
  • Habilitar HTTPS no servidor de resources com certificado Let’s Encrypt
  • Registrar o MTA Server.exe como serviço Windows via NSSM pra auto-start
  • Configurar backup automático da pasta resources/ e acl.xml

Se você está colocando isso em produção e precisa de latência baixa pro Brasil, uma VPS Hostini em São Paulo entrega pings de 10-25ms pra grande SP e oferece DDoS protection inclusa — relevante porque servidor MTA com IP exposto é alvo recorrente de UDP flood na porta 22003.

Perguntas frequentes

Qual a diferença entre o MTA Server 1.5 e 1.6?

A versão 1.6 é a linha estável atual, com correções de protocolo, melhor compatibilidade com clients modernos e suporte HTTPS no servidor de resources. A 1.5 ainda funciona, mas resources novos da comunidade já assumem 1.6 como base. Para servidor novo, sempre comece na 1.6.

Preciso abrir as portas em TCP ou UDP?

O MTA:SA usa UDP nas portas 22003 (game) e 22126 (ASE/lista pública). A porta 22005 é TCP, usada pelo servidor HTTP interno de resources. Abrir só TCP impede que os jogadores conectem; abrir só UDP impede o download de scripts client-side.

Por que meu servidor não aparece na lista oficial do MTA?

As causas comuns são: ase=1 ausente no mtaserver.conf, porta 22126 UDP bloqueada no firewall, servidor rodando atrás de NAT sem port forwarding, ou IP listado como reservado pela RFC 1918. O servidor master da MTA faz polling em UDP 22126 — sem resposta, não aparece.

Quantos slots aguentam 4 GB de RAM e 2 vCPUs?

Servidor freeroam vanilla com 5 a 10 resources roda 64 slots tranquilo nessa configuração. Com gamemode pesado tipo MTA Race competitivo ou roleplay com MySQL e 40+ resources, espere 32 slots estáveis. O gargalo é CPU single-thread: o MTA não escala bem em múltiplos núcleos.

Preciso de Windows Server ou Windows 10 normal serve?

Windows Server 2019 ou 2022 é a escolha técnica: scheduler melhor para processos longos, sem limite de 20 conexões inbound como nas versões desktop, e suporte oficial pra rodar como serviço via NSSM. Windows 10/11 funciona pra dev local, mas em produção você bate no teto de conexões em hora de pico.

Como faço o servidor reiniciar sozinho se cair?

A forma limpa é registrar o MTA Server como serviço Windows usando NSSM (Non-Sucking Service Manager), configurando restart automático em falha. Alternativa rápida é um arquivo .bat com loop, mas perde controle de restart policy. NSSM aceita até dependências, logs separados e recovery configurável.

Tópicos:
Próximos passos VPS, dedicado ou painel gerenciado para FiveM, SAMP, MTA, Tibia e mais.Hospede seu servidor de jogos com a Hostini →
Esse tutorial foi útil?
Falar no WhatsApp