IPv4, IPv6 e IP fixo: o básico para quem hospeda

IPv4 e IPv6 são duas versões do endereço que identifica uma máquina na internet: IPv4 tem 32 bits e IPv6 tem 128 bits. Um IP fixo é um endereço que não muda com o tempo.

Atualizado em 6 min de leitura

Objetivos de aprendizado

Depois de ler este artigo, você vai conseguir:

  • Entender a diferença entre IPv4 e IPv6
  • Saber o que é IP fixo, dinâmico, público e privado
  • Decidir quando você precisa de IP fixo e quando um domínio basta
Nesta página

Todo computador que fala com a internet tem um endereço IP, e muita dúvida de hospedagem passa por ele, de qual IP colocar no DNS até se você precisa de IP fixo. Conhecer as duas versões do protocolo mostra o que muda para quem publica um bot, uma API ou um site.

Na maior parte do tempo, você nem digita um IP: aponta nomes, e o DNS faz o resto. Mesmo assim, entender a diferença evita erros de configuração e mostra quando um IP fixo realmente importa.

exemplo.comAAAAAIPv42030.113.10.4 blocos decimais32 bitsIPv68 grupos hexadecimais20010db8:0000:0000:0000:0000:0000:0010:128 bitsforma curta: 2001:db8::10
O mesmo nome pode ter um IPv4 (registro A, 32 bits) e um IPv6 (registro AAAA, 128 bits).

O que é um endereço IP?#

Um endereço IP identifica uma interface de rede para que os pacotes saibam para onde ir. Ele diz quem é o destino e onde ele está na rede. O IPv4 foi definido na RFC 791, e o IPv6 na RFC 8200.

Você normalmente acessa um serviço por um nome como exemplo.com. O sistema de nomes traduz esse nome em IP antes da conexão. Se quiser rever esse passo, leia o que é DNS.

Qual a diferença entre IPv4 e IPv6?#

O IPv4 usa 32 bits, escritos como quatro números de 0 a 255 separados por ponto: 203.0.113.10. Isso dá cerca de 4,3 bilhões de endereços (2 elevado a 32), número que ficou pequeno diante da quantidade de dispositivos conectados. O registro de blocos IPv4 da IANA mostra a última alocação central em 2011, e desde então os endereços circulam por revenda e reaproveitamento.

O IPv6 usa 128 bits, escritos como oito grupos hexadecimais separados por dois-pontos: 2001:db8::10. O espaço é tão grande que cada rede recebe blocos imensos sem escassez. A RFC 4291 define a arquitetura de endereçamento, e a RFC 5952 fixa a forma recomendada de escrever: letras minúsculas, zeros à esquerda omitidos e a sequência mais longa de grupos zero resumida com :: (só uma vez por endereço, e nunca para um único grupo zero, que se escreve 0).

IPv4 IPv6
Tamanho 32 bits 128 bits
Formato 203.0.113.10 2001:db8::10
Registro DNS A AAAA
Localhost 127.0.0.1 ::1
Escassez Sim, a reserva central da IANA se esgotou Não
NAT necessário Muito comum Normalmente não

O bloco 2001:db8::/32 é reservado para documentação (RFC 3849), por isso aparece em exemplos como este.

Os dois protocolos não se comunicam diretamente. Um cliente só IPv6 não alcança um servidor só IPv4 sem um tradutor no meio. Por isso a transição acontece com dupla pilha (dual stack): o servidor e a rede aceitam as duas versões ao mesmo tempo.

O que é IP público, privado e CGNAT?#

Um IP público é roteável na internet. Um IP privado só vale dentro de uma rede local. A RFC 1918 reserva três faixas para isso:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

O seu roteador de casa usa NAT: todos os dispositivos da rede interna saem para a internet com um único IP público. É por isso que você enxerga 192.168.0.x no computador, mas um endereço diferente em sites que mostram "seu IP".

Alguns provedores vão além e aplicam CGNAT, usando a faixa 100.64.0.0/10 (RFC 6598) para dividir um IPv4 público entre vários clientes. Com CGNAT, conexões de entrada não chegam até você, então abrir porta no roteador não adianta. Esse é um dos motivos mais comuns de "meu servidor caseiro não aparece de fora".

O que é IP fixo e o que é IP dinâmico?#

Um IP dinâmico muda de tempos em tempos, porque o provedor o atribui de um conjunto compartilhado. Um IP fixo (ou estático) é reservado para você e permanece o mesmo até você devolvê-lo.

  • Conexões residenciais costumam ter IP dinâmico, às vezes atrás de CGNAT.
  • Servidores de hospedagem costumam ter IP fixo, justamente para que o DNS aponte para ele com segurança.

O problema do IP dinâmico para hospedar algo é simples: o DNS guarda o endereço antigo e passa a apontar para o vazio quando o IP muda. Serviços de DNS dinâmico atualizam o registro automaticamente, mas só valem a pena se você realmente precisa servir de casa.

Quando você realmente precisa de IP fixo?#

Menos vezes do que parece. Pense em quem precisa saber o endereço:

  1. Bots de Discord, Telegram e WhatsApp normalmente fazem conexões de saída para as plataformas. Ninguém precisa conhecer o IP do bot.
  2. APIs e sites são acessados por domínio. Quem usa o nome não liga para o IP por trás.
  3. Lista de IPs permitidos (allowlist): um banco de dados, uma API de pagamento ou um firewall de terceiros só aceita conexões de endereços cadastrados. Aqui o IP de saída da sua aplicação precisa ser estável.
  4. Registro A direto: se você aponta o domínio raiz para um IP, esse IP precisa durar.
  5. E-mail: servidores de e-mail dependem da reputação de um IP, e o DNS reverso (PTR) precisa bater com ele.

Fora desses casos, o melhor caminho é apontar pelo nome. Com um registro CNAME, quem hospeda pode trocar o IP por trás sem que o seu DNS quebre. Compare os dois registros em A vs CNAME e veja todos os tipos em registros DNS.

Como verificar IPv4 e IPv6 do seu domínio?#

Peça os dois tipos de registro e teste a conexão em cada pilha:

bash
dig +short A exemplo.com
dig +short AAAA exemplo.com
curl -4 -sI https://exemplo.com | head -n 1
curl -6 -sI https://exemplo.com | head -n 1

Se AAAA vier vazio ou curl -6 falhar, o servidor só atende IPv4. Em Node.js, dá para listar todos os endereços de um nome e detectar a versão de cada um:

js
import { lookup } from "node:dns/promises";
import { isIP } from "node:net";

const enderecos = await lookup("exemplo.com", { all: true });

for (const { address, family } of enderecos) {
  console.log(`IPv${family}: ${address} (isIP=${isIP(address)})`);
}

lookup com all: true devolve um item por endereço, com family igual a 4 ou 6 (documentação do módulo dns). Para validar entrada do usuário, isIP retorna 4, 6 ou 0 quando a string não é um IP.

Um erro comum em código é guardar o IP num campo de 15 caracteres: um IPv6 chega a 39 caracteres na forma hexadecimal completa, e a 45 na forma com um IPv4 embutido no final (0000:0000:0000:0000:0000:ffff:255.255.255.255). Use colunas e validações que aceitem os dois formatos.

Como fazer isso na Square Cloud#

A Square Cloud usa só IPv4 dinâmico, sem IP fixo nem IPv6, então não há um endereço estável para um registro A: publique por nome. Toda aplicação web ganha um subdomínio *.squareweb.app com HTTPS, em todos os planos. A partir do plano Standard, você também pode usar um domínio próprio: cria no seu registrador os registros DNS que o painel mostra, acompanha a validação em tempo real e recebe TLS automático.

O domínio próprio entra por CNAME para cname.squareweb.app, mais um TXT de validação. O domínio raiz funciona se o seu provedor de DNS aceita CNAME na raiz (flattening ou ALIAS), e o recomendado é redirecionar o www para o domínio principal. O domínio continua registrado em seu nome no seu registrador, e é lá que você mantém os registros DNS.

Para atender mais tráfego por um mesmo domínio, o load balancing distribui as requisições do domínio personalizado entre várias aplicações, com round-robin e failover passivo. Saiba mais em domínios personalizados, na rede da Square Cloud e em load balancing.

Rede

Domínio próprio, TLS automático e CDN global para o seu app

Saiba mais

Perguntas frequentes

IPv6 é melhor que IPv4?

IPv6 tem espaço de endereços muito maior e dispensa NAT na maioria dos casos. Na prática os dois convivem, e um servidor bem configurado atende ambos.

Preciso de IP fixo para hospedar um bot ou uma API?

Quase nunca. Um bot normalmente só faz conexões de saída, e uma API é acessada por um domínio. IP fixo importa quando um terceiro libera acesso por lista de IPs.

O que é CGNAT e por que atrapalha?

É quando o provedor de internet divide um mesmo IPv4 público entre vários clientes. Você normalmente não recebe conexões vindas da internet, então fica difícil hospedar um servidor em casa.

Como saber se meu servidor responde por IPv6?

Procure um registro AAAA para o domínio e teste a conexão com curl -6. Se não houver AAAA ou a conexão falhar, o servidor só atende IPv4.

Próximo artigoLatência e ping: por que a localização do servidor importaLatência é o tempo que um dado leva para ir e voltar entre você e o servidor. Veja o que é ping, o que a compõe, como medir com curl e como reduzir.

Mais em Rede e domínios

Ver todos os 27 artigos