Validador de Porta TCP/UDP
Valida se um número é uma porta TCP/UDP válida (0–65535) e classifica como well-known (0–1023), registered (1024–49151) ou dinâmica (49152–65535).
Portas TCP e UDP: 16 bits que endereçam todo pacote da internet
Uma porta de rede é um inteiro sem sinal de 16 bits que identifica um endpoint de aplicação específico em um host. Como o campo tem exatamente 16 bits, o intervalo válido é 0 a 65535 — qualquer número fora desse intervalo é, por definição, uma porta inválida. Junto com o endereço IP, a porta forma o socket que o sistema operacional usa para entregar um pacote ao processo correto. Sem portas, um servidor com um único IP só poderia rodar uma aplicação de rede por vez.
Portas existem em dois namespaces paralelos: TCP e UDP. Eles são independentes: TCP porta 53 (usada historicamente em transferência de zona DNS) e UDP porta 53 (usada em queries DNS comuns) são sockets totalmente separados. Mesma lógica vale para QUIC (sobre UDP) e SCTP. O registro IANA, definido pela RFC 6335, divide o espaço de 65 536 entradas em três faixas oficiais com convenções bem diferentes.
As três faixas IANA
- 0 a 1023 — well-known (system). Atribuídas pela IANA a serviços canônicos. Em sistemas Unix exigem root ou a capability
CAP_NET_BIND_SERVICEpara fazer bind. Exemplos clássicos: HTTP 80, HTTPS 443, SSH 22, SMTP 25, DNS 53, FTP 21/20, POP3 110, IMAP 143, IMAPS 993, NTP 123, SNMP 161, LDAP 389, LDAPS 636. - 1024 a 49151 — registradas (user). Reservadas pela IANA a aplicações específicas mediante pedido. Bancos de dados moram aqui: MySQL 3306, PostgreSQL 5432, Redis 6379, MongoDB 27017, Memcached 11211, RabbitMQ 5672, Elasticsearch 9200. Servidores de aplicação também: Node debug 9229, Tomcat 8080, Jenkins 8080, Grafana 3000.
- 49152 a 65535 — dinâmicas, privadas ou efêmeras. Alocadas transitoriamente pelo kernel para conexões de saída do cliente, nunca registradas. São o "endereço de retorno" que seu laptop usa ao abrir uma conexão TCP para a porta
:443de um host remoto.
A faixa efêmera padrão varia por sistema: Linux usa 32768 a 60999 (ajustável em /proc/sys/net/ipv4/ip_local_port_range); Windows Vista+, macOS e a maioria dos BSDs seguem a recomendação IANA de 49152 a 65535. A RFC 6056 manda randomizar a porta dentro da faixa para impedir que atacantes off-path adivinhem portas do lado cliente.
Validar string de porta: regex + range
Uma regex como ^([0-9]{1,5})$ só garante que a entrada tem de um a cinco dígitos. A verificação aritmética também importa: 65536 casa com a regex mas é inválida; 00080 casa mas não é canônica. Validadores de produção normalizam parseando para inteiro e checando 0 ≤ n ≤ 65535. Muitos ainda rejeitam a porta 0 por padrão: tecnicamente reservada, mas em Linux bindar em 0 instrui o kernel a escolher uma porta efêmera livre — útil em servidores ad-hoc e testes, jamais como valor fixo em config.
function isValidPort(s) {
if (!/^\d{1,5}$/.test(s)) return false
const n = Number(s)
return n >= 0 && n <= 65535
}
Usos operacionais: firewall, containers, microsserviços
Validar portas é o herói anônimo de toda config de infra moderna. Firewalls (iptables, nftables, AWS Security Groups, Azure NSG) declaram tráfego permitido por porta; o Docker expõe serviços com -p 8080:80; objetos Service do Kubernetes listam containerPort e targetPort; blocos upstream do nginx roteiam por server backend:5432;. Túneis SSH (ssh -L 8080:localhost:80 user@host) e reverse tunnels dependem de portas válidas nas duas pontas.
Uma causa frequente de outage em produção é a colisão de porta: dois serviços tentando bindar no mesmo socket TCP. O kernel retorna EADDRINUSE e o segundo processo morre. Diagnostique com lsof -i :PORTA (macOS / Linux), netstat -an | grep PORTA (cross-plataforma) ou ss -tlnp (Linux moderno). No macOS o AirPlay Receiver senta na porta 5000 e historicamente quebrava o default do Flask.
Segurança: scan, exposição e mínimo necessário
Port scanning com ferramentas como nmap, masscan ou zmap enumera quais portas TCP/UDP um host aceita conexão. Feito nos seus próprios ativos, é etapa essencial de auditoria; contra terceiros sem consentimento, pode ser ilegal — no Brasil, sob o Marco Civil da Internet (Lei 12 965/2014) e dispositivos do Código Penal. Vários dos maiores vazamentos da última década — Redis sem auth em 6379, MongoDB em 27017, Elasticsearch em 9200, Memcached em 11211 — resumem-se a um serviço bindado em 0.0.0.0 em vez de 127.0.0.1 e sem autenticação.
Boas práticas: bindar serviços internos em loopback ou em interface de rede privada; colocar firewall na frente de qualquer porta alcançável pela internet; mudar SSH de 22 só como complemento à autenticação por chave, jamais como substituto; em containers, expor apenas o estritamente necessário.
FAQ
Porta 0 é válida? Numericamente sim (cabe em 16 bits) e no Linux tem o significado especial "atribua qualquer porta livre". Como porta configurada de serviço, deve ser rejeitada.
Por que portas abaixo de 1024 exigem root? São portas privilegiadas históricas; a regra impede usuários comuns de se passarem por serviços conhecidos como SMTP. Linux moderno oferece setcap 'cap_net_bind_service=+ep' para conceder o direito sem root pleno.
Qual o valor máximo de porta? 65535 (2^16 − 1). Qualquer valor maior é inválido para TCP e UDP.
TCP e UDP podem compartilhar a mesma porta? Sim — são namespaces independentes. DNS usa 53 em ambos; HTTP/3 (QUIC) usa 443 UDP sem conflitar com HTTPS em 443 TCP.
Como descobrir qual processo segura uma porta? lsof -i :PORTA em macOS/Linux, ss -tlnp em Linux moderno, ou netstat -ano + Gerenciador de Tarefas no Windows.
Ferramentas Relacionadas
Validador de MAC Address
Valide endereços MAC nos formatos com dois pontos (xx:xx:xx:xx:xx:xx), hífen, Cisco (xxxx.xxxx.xxxx) ou sem separador. Identifica unicast/multicast e local/universal. Tudo no navegador.
Validador de ASN (BGP)
Valida números ASN (Autonomous System) usados em BGP. Aceita formato decimal (15169) ou prefixado AS (AS15169). 32 bits.
Validador de IP (v4 e v6)
Valide endereços IPv4 e IPv6 com detecção automática. Mostra a classe (A/B/C/D/E), se é privado ou público, loopback, multicast e formato canônico. Tudo no navegador.