Portas e firewall

Como abrir portas no Windows Server com PowerShell

Abrir TCP e UDP de entrada e de saída na firewall do Windows com duas linhas, confirmar que ficaram bem e perceber porque às vezes continua a não funcionar.

4 min de leituraAtualizado a 6 de outubro de 2026

Quando montas um servidor de jogos num VPS Windows e ninguém se consegue ligar, o culpado é quase sempre o mesmo: a firewall do Windows está a bloquear a porta. Aqui vai como abri-la com comandos, o que é mais rápido do que andar pelos menus e, sobretudo, pode ser copiado e colado sem enganos.

Num VPS não há router para configurar. Esquece o «port forwarding» que vês nos tutoriais: isso é para servidores em casa. O teu VPS tem IP público próprio, por isso a única coisa entre os teus jogadores e o teu servidor é a firewall do Windows.

Caminho de um jogador até ao teu servidor: o PC dele, a Internet, o filtro AntiDDoS, a firewall do VPS e o teu servidor à escuta na sua porta
Se qualquer um destes passos não tiver a porta aberta, com o protocolo certo, o jogador não entra.

Abre o PowerShell como administrador

Liga-te ao teu VPS por Ambiente de Trabalho Remoto (explicamos aqui como), clica com o botão direito no botão Iniciar e escolhe Terminal (Admin) ou Windows PowerShell (Admin). Sem permissões de administrador, os comandos vão falhar com um erro de permissões.

Abrir uma porta: TCP e UDP, entrada e saída

Este exemplo abre a 30120; muda o número e o nome para os teus. Cola o bloco inteiro de uma vez:

$porta = 30120
$nome = "Servidor de jogo"

New-NetFirewallRule -DisplayName "$nome TCP $porta (entrada)" -Direction Inbound  -Protocol TCP -LocalPort $porta -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nome UDP $porta (entrada)" -Direction Inbound  -Protocol UDP -LocalPort $porta -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nome TCP $porta (saida)"   -Direction Outbound -Protocol TCP -LocalPort $porta -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nome UDP $porta (saida)"   -Direction Outbound -Protocol UDP -LocalPort $porta -Action Allow -Profile Any

O que faz cada parte, caso a queiras adaptar:

  • -Direction Inbound é o que chega de fora (o que precisas mesmo) e Outbound o que sai.
  • -Protocol TCP ou UDP. Não são intercambiáveis. Se o teu jogo usa UDP e só abres TCP, ninguém entra: é o erro mais repetido.
  • -LocalPort é a porta em que o teu servidor está à escuta.
  • -Profile Any aplica a regra aos três perfis de rede (domínio, privado e público). Num VPS a ligação costuma estar em «público», por isso é importante.

São precisas as de saída? No Windows Server o tráfego de saída está permitido por omissão, por isso normalmente não. Estão incluídas porque não incomodam e porque, se alguém tiver endurecido a firewall antes, serão exatamente o que faltava.

Para um intervalo de portas

New-NetFirewallRule -DisplayName "Jogo UDP 7777-7778 (entrada)" -Direction Inbound -Protocol UDP -LocalPort 7777-7778 -Action Allow -Profile Any

Também serve uma lista separada por vírgulas: -LocalPort 27015,27020.

Confirmar que ficaram bem

Get-NetFirewallRule -DisplayName "*30120*" | ForEach-Object {
    $f = $_ | Get-NetFirewallPortFilter
    [pscustomobject]@{
        Regra     = $_.DisplayName
        Ativa     = $_.Enabled
        Sentido   = $_.Direction
        Acao      = $_.Action
        Protocolo = $f.Protocol
        Porta     = $f.LocalPort
    }
} | Format-Table -AutoSize

Têm de aparecer as quatro regras, com Enabled em True e Action em Allow.

Confirmar que o teu servidor está à escuta

Abrir a porta não serve de nada se não houver nada à escuta do outro lado. Com o servidor de jogos a correr:

Get-NetTCPConnection -LocalPort 30120 -State Listen
Get-NetUDPEndpoint  -LocalPort 30120

Se não devolverem nada, o problema não é a firewall: o teu servidor não arrancou, foi abaixo ou está configurado noutra porta. Vê a consola do jogo antes de continuares a mexer em regras.

Apagar uma regra

Remove-NetFirewallRule -DisplayName "Servidor de jogo TCP 30120 (entrada)"

Se preferes fazê-lo com o rato

Carrega em Win + R, escreve wf.msc e Enter. No painel da esquerda escolhe Inbound Rules (regras de entrada) → New Rule… (nova regra) na coluna da direita → Port (porta) → escolhe TCP ou UDP e escreve o número em Specific local ports (portas locais específicas) → Allow the connection (permitir a ligação) → deixa marcados os três perfis → dá-lhe um nome e conclui. Repete para o outro protocolo: uma regra cobre só TCP ou UDP, nunca os dois.

Continua a não funcionar

Revê por esta ordem, que é a que despista mais depressa:

  1. O servidor está à escuta? Os dois comandos de cima. É de longe a falha mais comum.
  2. Abriste o protocolo certo? Metade dos jogos funciona por UDP. Abre TCP e UDP e tiras a dúvida.
  3. Estás a testar a partir do próprio servidor? De dentro funciona sempre. Testa a partir de outra ligação ou pede a alguém que entre.
  4. Filtragem AntiDDoS. Na página do teu serviço, separador Segurança, estão os filtros da rede. Se tiveres filtros criados à mão, confirma que incluem a porta e o protocolo do teu jogo.

Nunca desatives a firewall inteira «para testar». Um VPS com IP público recebe varrimentos automáticos poucos minutos depois de ser ligado. Abre as portas de que precisas e deixa o resto fechado.

Artigos relacionados

Voltar ao centro de ajuda

Não encontras o que procuras?

Abre um ticket no teu painel e respondemos em menos de 5 minutos.