Tutorial de Linux / Entenda endereços IP, DNS e portas

Um endereço de protocolo de Internet (IP) identifica um ponto de extremidade de rede, o Sistema de Nomes de Domínio (DNS) consulta registros associados a um nome de domínio, e uma porta identifica um ponto de extremidade de comunicação dentro de um host. Acessar um site requer resolução de nomes funcionando, uma rota para o destino e um serviço que aceite a conexão.

Depois de separar endereços, nomes e portas, use diagnóstico de problemas de rede, em inglês para testar falhas em cada camada.

Os exercícios de configuração do sistema usam uma VM convencional Ubuntu 26.04 LTS ou Rocky Linux 9 como ambiente de referência. Contêineres, WSL e outras versões podem diferir na configuração de serviços e pacotes. Prepare a recuperação do console e registre suas versões usando a aula de preparação da máquina virtual, em inglês.

Separe endereços, nomes e portas em uma conexão

Considere https://example.com/. O navegador e o sistema operacional obtêm informações de endereço de acordo com seus caches e configuração de resolvedor, escolhem uma rota e contatam o servidor. HTTPS normalmente usa a porta 443; a troca pode usar TCP com Transport Layer Security (TLS) ou HTTP/3 sobre QUIC, que usa UDP e integra TLS. Uma consulta DNS bem-sucedida por si só não prova que o site é acessível.

Item Propósito Exemplo
Endereço IP Endereço usado para enviar pacotes 192.0.2.10 ou 2001:db8::10
DNS Pesquisar registros associados a nomes Registros A, AAAA e MX
Porta e protocolo Diferenciar pontos finais de comunicação TCP 443 e UDP 443 são distintos

Os intervalos 192.0.2.0/24 e 2001:db8::/32 são exemplos de documentação, não servidores de laboratório acessíveis. TCP e UDP possuem espaços de porta separados, então uma regra de firewall precisa identificar o protocolo além do número.

Entenda IPv4, IPv6 e endereços privados

IPv4 usa endereços de 32 bits comumente escritos em decimal pontuado; IPv6 usa endereços de 128 bits comumente escritos em grupos hexadecimais separados por dois pontos. Uma interface pode ter vários endereços e suportar ambas as famílias. 127.0.0.1 e ::1 são endereços de loopback. Um serviço que escuta apenas no loopback não está diretamente disponível a partir de outro computador.

Faixas privadas IPv4 são 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16. Elas podem ser reutilizadas em redes privadas e não são endereços públicos roteados globalmente. O acesso de saída pode usar tradução de endereços de rede (NAT). Não presuma que o IPv6 seja apenas IPv4 sem NAT, ou que uma regra de firewall IPv4 proteja automaticamente o IPv6.

Leia prefixos e a rota padrão

Em 192.168.10.20/24, /24 é a notação Classless Inter-Domain Routing (CIDR) para um prefixo de rede de 24 bits. O roteamento escolhe um prefixo de destino correspondente, geralmente favorecendo um mais específico. Uma entrada default via ... fornece um próximo salto quando nenhuma rota mais específica se aplica. Um gateway e um servidor DNS podem compartilhar um endereço, mas realizam funções diferentes.

ip -brief address
ip route
ip -6 route
getent ahosts example.com

ip pertence ao projeto iproute2, mas os nomes dos pacotes de distribuição diferem: iproute2 no Ubuntu 26.04 e iproute no Rocky Linux 9. Esses comandos mostram endereços de interface, rotas e resolução de nomes do sistema. Em ip -brief address, observe a interface, o estado e os endereços; nas rotas, observe o destino, via e dev. Uma saída vazia de ip -6 route pode indicar ausência de rotas IPv6 nessa consulta, sem provar que IPv4 esteja com problema. getent pode usar /etc/hosts e outras fontes configuradas, além do DNS; endereços e nomes de interface variam de acordo com a máquina.

Verifique as versões instaladas com dpkg-query -W iproute2 no Ubuntu ou rpm -q iproute no Rocky. O repositório oficial Rocky Linux 9 BaseOS também mostra o nome do pacote RPM.

Teste a resolução de nomes separadamente do serviço

Um registro A contém um endereço IPv4 e um registro AAAA contém um endereço IPv6. Um nome pode retornar múltiplos endereços, e o cache e o prazo de validade (TTL) dos registros podem afetar os resultados. Em um sistema que utiliza systemd-resolved, o primeiro comando abaixo exibe a configuração do resolvedor. Se ele não estiver disponível, inspecione a configuração do NetworkManager ou do resolvedor usada por essa distribuição.

resolvectl status
ss -lnt
curl -I --connect-timeout 5 --max-time 15 https://example.com/

ss -lnt lista sockets TCP locais em escuta, não portas no site remoto. curl -I solicita cabeçalhos HTTPS pelo método HEAD, sem baixar o corpo. Leia a linha de status: uma resposta HTTP 200 indica sucesso dessa requisição; 403 ou 405 podem representar bloqueio do método, mesmo que um GET funcione. Sem --fail, um código de saída zero do curl não garante status HTTP 2xx. O limite de conexão é 5 segundos e o total é 15 segundos. Um resultado com proxy também não comprova o caminho direto até o servidor. Instale-o com sudo apt install curl no Ubuntu ou sudo dnf install curl no Rocky Linux, se necessário. Configurações de proxy, confiança de certificado e política de rede podem afetar o resultado. O manual oficial do curl descreve essas opções.

Escolha a próxima verificação com base nas evidências

  1. Se a interface não tiver endereço, inspecione a conexão de rede da VM e a configuração da interface.
  2. Se um endereço existir, mas não houver rota utilizável, investigue o roteamento e o gateway.
  3. Se apenas a resolução de nomes falhar, inspecione o resolvedor e a configuração do serviço de nomes.
  4. Se a resolução e o roteamento funcionarem, diferencie portas em escuta, filtragem, erros de TLS e erros de aplicação.

As consultas dos dois blocos de código não alteram a configuração de rede; os comandos de instalação mencionados no texto alteram pacotes. Evite sobrescrever arquivos de resolvedor ou desativar um firewall como primeira resposta. Identifique a camada com falha antes de fazer uma alteração direcionada.

Referências oficiais