Alterar a porta RDP no Windows sem reiniciar o servidor

Publicado a Atualizado a 4 min de leitura

Com um pequeno script PowerShell altera a porta RDP no Windows, cria a regra de firewall correspondente e reinicia o serviço de Ambiente de Trabalho Remoto, tudo sem reiniciar o servidor.

Neste guia mostramos-lhe como alterar a porta do Ambiente de Trabalho Remoto (RDP) no Windows através do PowerShell, por exemplo num Windows Server, como adaptar a firewall do Windows em conformidade e como reiniciar o serviço de Ambiente de Trabalho Remoto. Para isso não é necessário reiniciar o servidor inteiro.

Porque deve alterar a porta RDP?

A porta padrão do Ambiente de Trabalho Remoto é a TCP 3389, e é precisamente essa porta que os bots automatizados analisam 24 horas por dia. Qualquer servidor Windows exposto na Internet com a porta 3389 aberta acumula em poucas horas centenas de tentativas de início de sessão falhadas. Isso não sobrecarrega apenas o sistema: com uma política de bloqueio de conta ativa, acaba também por bloquear a sua própria conta.

Uma porta diferente retira o seu servidor destas análises em massa. No entanto, não substitui as restantes medidas de proteção: uma palavra-passe forte, a Network Level Authentication (NLA) ativada e uma regra de firewall que limite o RDP ao seu próprio endereço IP continuam a ser igualmente importantes.

Requisitos

  • Um sistema Windows com o Ambiente de Trabalho Remoto ativado, por exemplo o Windows Server 2022 ou o Windows Server 2025
  • Direitos de administrador nesse sistema
  • Uma porta livre acima de 1024, no exemplo utilizamos a 33445
  • Acesso à consola KVM na sua área de cliente como via de recurso, caso a ligação não funcione logo a seguir à alteração

Abrir o PowerShell como administrador

Abra primeiro o Windows PowerShell como administrador. Para isso, clique com o botão direito do rato em "Windows PowerShell" no menu Iniciar e escolha "Executar como administrador". Sem direitos elevados, o script não pode alterar nem o registo nem a firewall.

O script PowerShell para alterar a porta RDP

Cole o script seguinte no PowerShell. Antes disso, ajuste o número da porta na primeira linha à porta que pretende utilizar:

# A porta 33445 é apenas um exemplo. Pode utilizar qualquer porta livre que queira.

$newPort = 33445
$regPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp'
Set-ItemProperty -Path $regPath -Name 'PortNumber' -Value $newPort
if (-not (Get-NetFirewallRule -DisplayName "RDP Port $newPort" -ErrorAction SilentlyContinue)) {
    New-NetFirewallRule `
      -DisplayName "RDP Port $newPort" `
      -Direction Inbound `
      -Protocol TCP `
      -LocalPort $newPort `
      -Action Allow
}
Restart-Service -Name TermService -Force
Write-Host "The RDP port has been changed."

O que o script faz em detalhe

  1. Define o novo número da porta na variável $newPort.
  2. Coloca o valor de registo PortNumber em HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp nesse valor.
  3. Cria uma regra adequada na firewall do Windows que permite ligações TCP de entrada na nova porta. Se a regra já existir, não volta a ser criada.
  4. Reinicia o serviço de Ambiente de Trabalho Remoto (TermService), para que a alteração fique ativa de imediato.

Voltar a ligar depois da alteração

Com o reinício do serviço, todas as ligações RDP em curso são imediatamente terminadas. Isso é normal. Para a nova ligação, indique no cliente RDP não só o endereço do servidor, mas sim a combinação de endereço e porta:

<Endereço-IP>:<Nova-Porta>

No nosso exemplo fica assim:

192.168.1.100:33445

Verificar a porta RDP atual

Qual a porta que está de momento registada, pode consultá-lo a qualquer altura diretamente no registo:

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber

O que deve tratar a seguir

  • Adaptar a firewall a montante: Se existir ainda uma firewall externa à frente do seu servidor, a nova porta também tem de estar aberta aí. Caso contrário, não chega ao servidor apesar de a regra do Windows estar correta.
  • Verificar a regra antiga da porta 3389: A regra existente "Ambiente de Trabalho Remoto" mantém-se. Desative-a se a porta 3389 já não deve estar acessível.
  • Restringir o acesso: O mais eficaz é limitar o RDP na firewall ao seu próprio endereço IP. Assim, todos os ataques automatizados ficam sem efeito.
  • Conta já bloqueada? Se a sua conta de utilizador já tiver sido bloqueada pelas tentativas de ataque anteriores, o nosso guia Resolver o erro RDP "conta bloqueada" ajuda-o a avançar.

Perguntas frequentes

Tenho de reiniciar o servidor depois de alterar a porta RDP?
Não. Basta reiniciar o serviço TermService, e é exatamente isso que o script faz automaticamente. Todas as sessões RDP abertas são, no entanto, terminadas nesse momento.
Que porta devo escolher para o RDP?
Escolha uma porta livre acima de 1024, por exemplo a 33445. Evite portas que já estejam ocupadas por outros serviços e anote o número, porque vai precisar dele em cada ligação.
Como me ligo depois da alteração?
Indique no cliente RDP o endereço do servidor juntamente com a nova porta, ou seja, no formato endereço IP:porta. No nosso exemplo seria 192.168.1.100:33445.
Uma porta RDP diferente protege mesmo contra ataques?
Uma porta alterada retira o seu servidor das análises em massa dirigidas à porta 3389 e reduz claramente o número de tentativas de início de sessão. Não substitui, porém, uma palavra-passe forte, a Network Level Authentication e uma restrição por IP na firewall.
Deixei de conseguir aceder ao servidor depois da alteração, o que posso fazer?
Na maioria dos casos falta a abertura da nova porta numa firewall a montante. Ligue-se ao servidor através da consola KVM na sua área de cliente e verifique aí a regra de firewall e o valor da porta guardado no registo.

Windows Server Windows RDP Porta RDP Remote Desktop PowerShell Firewall Segurança do servidor