Ubuntu Conceitos de Rede
Antes de usar comandos de rede, vale entender as peças: IP, máscara, gateway, DNS e porta. Com elas na cabeça, as saídas do ip, do ping e do ssh deixam de ser sopa de números. No fim, você terá um roteiro para descobrir por que "a internet não funciona".
- O que são IP, máscara, gateway, DNS e porta, comparando com endereços de correio.
- A diferença entre IP privado (da sua casa) e IP público (da internet).
- Como ver essas informações no seu Ubuntu com três comandos.
- Um roteiro de 6 passos para achar onde a conexão quebrou.
Os exemplos usam a máquina fictícia notebook, da usuária ana, ligada no Wi-Fi de casa. No seu computador, os números e os nomes das placas serão outros.
A rede como um sistema de correio
Uma rede de computadores funciona como o correio de uma cidade. Cada peça técnica tem um equivalente do dia a dia:
| Termo | Analogia | Exemplo |
|---|---|---|
| Endereço IP | O endereço da casa. Sem ele, ninguém sabe para onde mandar a carta. | 192.168.0.15 |
| Máscara de rede | Diz qual parte do endereço é o "bairro". Quem está no mesmo bairro se fala direto. | /24 ou 255.255.255.0 |
| Gateway | A agência do correio do bairro. Tudo que vai para fora do bairro passa por ela. | 192.168.0.1 (o roteador) |
| DNS | A agenda de contatos: troca o nome pelo endereço. | ubuntu.com → 185.125.190.20 |
| Porta | O número do apartamento dentro do prédio. Cada serviço mora num número. | 22 (SSH), 443 (sites com HTTPS) |
| Placa de rede (interface) | A caixa de correio da casa. Um notebook pode ter várias: cabo e Wi-Fi. | wlp2s0, enp3s0 |
Endereço IP
IP vem de Internet Protocol, "protocolo de internet". O endereço IPv4 tem 4 números de 0 a 255, separados por pontos. O jeito mais rápido de ver o seu é o hostname -I:
- hostname
- O programa que mostra o nome da máquina.
- -I
- Opção com i maiúsculo: em vez do nome, mostra todos os endereços IP da máquina.
$ hostname -I 192.168.0.15 2804:14c:5b80:8a1f::1a2b « o primeiro é o IPv4; o segundo, IPv6
IP privado e IP público
O 192.168.0.15 é um IP privado: só vale dentro da sua casa, como "apartamento 15" só faz sentido dentro do prédio. Para a internet, toda a sua casa aparece com um único IP público, o do roteador. Para descobrir o IP público, é preciso perguntar a um site de fora:
$ curl -4 -s ifconfig.me 177.92.48.203 « o endereço da sua casa vista de fora
Esse IP público é ilustrativo. O curl busca o conteúdo de um endereço da web; você vai conhecê-lo em curl, wget, dig.
Três faixas são reservadas para redes privadas. Se o seu IP começa assim, ele é privado:
| Faixa | Onde costuma aparecer |
|---|---|
192.168.x.x | Roteadores de casa e de pequenos escritórios |
10.x.x.x | Empresas, VPNs, provedores de nuvem |
172.16.x.x a 172.31.x.x | Empresas e o Docker |
127.0.0.1 | Não é rede: é o próprio computador (localhost) |
127.0.0.1, ou o nome localhost, sempre aponta para a própria máquina. É útil para testar programas sem sair do computador, e funciona até sem internet.
Máscara de rede: qual é o seu "bairro"
A máscara diz quantos números do começo do IP formam o endereço da rede (o bairro). Ela aparece depois de uma barra, no formato chamado CIDR: 192.168.0.15/24.
O /24 quer dizer que os 24 primeiros bits, ou seja, os três primeiros números (192.168.0), são o bairro. O último número muda de casa para casa. Por isso 192.168.0.15 e 192.168.0.30 se falam direto, mas 192.168.1.7 já está em outro bairro.
| CIDR | Máscara escrita por extenso | Parte fixa | Endereços para máquinas |
|---|---|---|---|
/8 | 255.0.0.0 | 10.x.x.x | cerca de 16 milhões |
/16 | 255.255.0.0 | 172.16.x.x | 65.534 |
/24 | 255.255.255.0 | 192.168.0.x | 254 |
/26 | 255.255.255.192 | parte do último número | 62 |
/32 | 255.255.255.255 | o endereço inteiro | 1 (uma máquina só) |
Para o dia a dia, basta lembrar: em casa, quase sempre é /24.
Gateway: a porta de saída
Para falar com algo fora do bairro (um site, por exemplo), o computador entrega o pacote ao gateway, quase sempre o roteador. O comando ip r mostra as rotas, inclusive o gateway:
- ip
- A ferramenta de rede do Linux.
- r
- Abreviação de
route: mostra a tabela de rotas, ou seja, por onde cada destino sai.
$ ip r default via 192.168.0.1 dev wlp2s0 proto dhcp src 192.168.0.15 metric 600 « para qualquer outro lugar, vá pelo roteador 192.168.0.0/24 dev wlp2s0 proto kernel scope link src 192.168.0.15 metric 600 « o "bairro": entrega direto
| Pedaço | Significado |
|---|---|
default | "Qualquer destino que não esteja nas outras linhas." |
via 192.168.0.1 | Mande pelo gateway, o roteador. |
dev wlp2s0 | Pela placa Wi-Fi. |
proto dhcp | Essa rota veio do DHCP: o roteador entregou IP e gateway automaticamente. |
src 192.168.0.15 | Usando o seu IP como remetente. |
metric 600 | Prioridade. Se houver duas rotas iguais, vence o número menor (o cabo costuma ter 100). |
DNS: a agenda de nomes
Computadores só entendem números, mas pessoas lembram nomes. O DNS (Domain Name System, "sistema de nomes de domínio") traduz ubuntu.com para um IP. Veja a tradução com o dig:
- dig
- Pergunta ao DNS (de domain information groper).
- +short
- Mostra só a resposta, sem os detalhes técnicos.
- ubuntu.com
- O nome a traduzir.
$ dig +short ubuntu.com 185.125.190.20 185.125.190.21 91.189.91.44 « um nome pode ter vários IPs
No Ubuntu, quem atende essas perguntas é um serviço local chamado systemd-resolved, no endereço 127.0.0.53. Ele repassa ao DNS do roteador ou a outro que você configurar. O comando resolvectl status mostra qual servidor está em uso; você vai usá-lo no roteiro de diagnóstico abaixo.
Se você consegue alcançar um IP mas não consegue abrir nenhum nome, a internet está funcionando: quem falhou foi a agenda. O roteiro mais abaixo mostra como distinguir os dois casos.
Portas, TCP e UDP
Um computador roda vários serviços ao mesmo tempo. A porta é o número que diz para qual deles o pacote vai, como o número do apartamento num prédio. O IP leva até o prédio, e a porta leva até o apartamento.
| Porta | Protocolo | Serviço |
|---|---|---|
22 | TCP | SSH: acesso remoto pelo terminal (SSH) |
53 | UDP e TCP | DNS |
80 | TCP | HTTP: sites sem criptografia |
443 | TCP | HTTPS: sites com cadeado |
25, 587 | TCP | Envio de e-mail (SMTP) |
3306 / 5432 | TCP | Bancos de dados MySQL / PostgreSQL |
67, 68 | UDP | DHCP: entrega de IP automático |
Existem dois "tipos de entrega":
- TCP: como uma carta registrada. Confirma o recebimento e reenvia o que se perder. Usado por sites, SSH e e-mail.
- UDP: como um panfleto. Mais rápido, sem confirmação. Usado por DNS, chamadas de vídeo e jogos.
Para ver quais portas o seu computador está escutando, use ss -tuln (detalhado em ip, ping, ss).
IPv4 e IPv6
Os endereços IPv4 (4 números) estão acabando: são só cerca de 4 bilhões. O IPv6 resolve isso com endereços enormes, escritos em hexadecimal e separados por dois-pontos, como 2804:14c:5b80:8a1f::1a2b. Os dois convivem: o seu Ubuntu provavelmente já tem os dois tipos.
::é uma abreviação para "um monte de zeros".- Endereços que começam com
fe80:são locais e só valem dentro da rede. ::1é o localhost do IPv6.
Onde ver tudo isso no seu Ubuntu
Há mais de uma forma de descobrir as mesmas informações:
| Quero ver… | Comando | Pela interface gráfica |
|---|---|---|
| Meu IP | hostname -I ou ip -br a | Configurações → Wi-Fi (ou Rede) → engrenagem da conexão |
| Meu gateway | ip r | Mesma tela, campo "Rota padrão" |
| Meu DNS | resolvectl status | Mesma tela, campo "DNS" |
| Meu IP público | curl -4 ifconfig.me | Qualquer site do tipo "qual é meu IP" |
| Tudo de uma vez | nmcli device show | — |
Roteiro: "a internet não funciona"
Siga os passos em ordem. Cada passo testa uma peça do correio; o primeiro que falhar mostra onde está o problema.
-
A placa de rede está ligada e tem IP? Use
ip -br a(-br= brief, "resumido"):$ ip -br a lo UNKNOWN 127.0.0.1/8 ::1/128 enp3s0 DOWN « cabo: desligado wlp2s0 UP 192.168.0.15/24 fe80::5a1c:3b2d:8e4f:9a10/64 « Wi-Fi: ligado, com IP
Se a placa que você usa está
DOWN, ouUPmas sem endereço IPv4, o problema é a conexão física: Wi-Fi desligado, senha errada ou cabo solto. Veja Wi-Fi e, se a placa Wi-Fi nem aparece, Wi-Fi que Não Funciona. -
Existe um gateway?
$ ip r default via 192.168.0.1 dev wlp2s0 proto dhcp src 192.168.0.15 metric 600 192.168.0.0/24 dev wlp2s0 proto kernel scope link src 192.168.0.15 metric 600
Sem a linha
default, o computador não sabe sair do bairro. Geralmente o problema é o DHCP do roteador: desconecte e conecte o Wi-Fi de novo. -
O roteador responde? O
pingmanda um "você está aí?" e espera a resposta.-c 3limita a 3 tentativas; sem isso, ele não para até você apertar Ctrl+C.$ ping -c 3 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=3.12 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=2.87 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=4.05 ms --- 192.168.0.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms « 0% de perda: o roteador está ok
Se aparecer
100% packet loss, o problema está entre você e o roteador: sinal fraco ou rede errada. -
A internet responde por IP? Teste um IP conhecido, como o DNS do Google,
8.8.8.8. Assim você testa a saída para a internet sem depender do DNS:$ ping -c 3 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=14.2 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=13.8 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=14.5 ms --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2004ms
Se o roteador responde mas o
8.8.8.8não, a internet do provedor caiu. Reinicie o roteador ou ligue para o provedor. -
A internet responde por nome? Agora o mesmo teste com um nome:
$ ping -c 3 google.com ping: google.com: Nome ou serviço desconhecido « o IP funcionou, o nome não: é o DNS
Se o
ping 8.8.8.8funcionou mas oping google.comnão, o problema é o DNS. -
Qual DNS está em uso?
$ resolvectl status wlp2s0 Link 3 (wlp2s0) Current Scopes: DNS Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported Current DNS Server: 192.168.0.1 « o roteador está fazendo papel de DNS DNS Servers: 192.168.0.1 Default Route: yesSe o DNS do roteador está com problema, configure um DNS público, como
1.1.1.1ou8.8.8.8, na conexão (veja Configurar a Rede).
Placa com IP → gateway → ping no roteador → ping num IP da internet → ping num nome → DNS. O primeiro passo que falha diz onde está o defeito.
Quando não funciona
$ ping -c 3 ubuntu.com ping: ubuntu.com: Nome ou serviço desconhecido
O que aconteceu: o DNS não conseguiu traduzir o nome. Ou o nome está errado (confira a digitação), ou o DNS não está respondendo.
Como confirmar: rode ping -c 3 8.8.8.8. Se esse funcionar, a internet está ok e o problema é só o DNS.
Como resolver: veja o passo 6 do roteiro e troque o DNS da conexão.
$ ping -c 3 8.8.8.8 ping: connect: A rede está fora de alcance
O que aconteceu: o computador nem tentou enviar, porque não tem rota para fora: não há gateway, ou a placa está sem IP.
Como resolver: volte aos passos 1 e 2 do roteiro. Reconecte o Wi-Fi ou o cabo.
$ ping -c 3 microsoft.com PING microsoft.com (20.70.246.20) 56(84) bytes of data. --- microsoft.com ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2051ms
O que aconteceu: muitos servidores bloqueiam o ping de propósito, por segurança. Não responder ao ping não significa estar fora do ar.
Como confirmar: teste o serviço de verdade, por exemplo com curl -I https://microsoft.com (veja curl, wget, dig).
Referência rápida
| Comando | Mostra |
|---|---|
hostname -I | Seus endereços IP |
ip -br a | Cada placa de rede, se está ligada e o IP dela |
ip r | Rotas e o gateway (default via) |
resolvectl status | Servidores DNS em uso |
dig +short nome | IP de um nome |
ping -c 3 destino | Se o destino responde, e em quanto tempo |
ss -tuln | Portas que o computador está escutando |
curl -4 ifconfig.me | Seu IP público |
Exercícios
1. Na analogia do correio, a porta corresponde a quê?
2. ping 8.8.8.8 funciona, mas ping google.com mostra "Nome ou serviço desconhecido". Onde está o problema?
3. Qual destes IPs é privado?
4. Ver o gateway
Complete o comando que mostra a tabela de rotas, onde aparece o gateway:
5. Ping que para sozinho
Complete para enviar só 4 pings ao roteador:
Resumo
- IP é o endereço; máscara define o bairro; gateway é a saída; DNS traduz nomes; porta escolhe o serviço.
192.168.x.x,10.x.x.xe172.16–31.x.xsão IPs privados;127.0.0.1é o próprio computador.hostname -I,ip reresolvectl statusmostram IP, gateway e DNS.- Para diagnosticar: placa → gateway → roteador → IP da internet → nome → DNS.