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
- Se a interface não tiver endereço, inspecione a conexão de rede da VM e a configuração da interface.
- Se um endereço existir, mas não houver rota utilizável, investigue o roteamento e o gateway.
- Se apenas a resolução de nomes falhar, inspecione o resolvedor e a configuração do serviço de nomes.
- 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.




