1. Visão Geral
Este artigo tem como objetivo apresentar, de forma didática, os comandos e técnicas fundamentais para diagnóstico e configuração de redes em sistemas Linux. Ao final, você saberá como:
- Exibir e configurar interfaces de rede (
ifconfig
eip
). - Monitorar conexões e estatísticas de rede (
netstat
ess
). - Criar scripts simples de diagnóstico.
- Realizar resoluções DNS manualmente.
2. Interfaces de Rede: ifconfig
vs. ip
2.1. ifconfig
(legado)
# Exibir todas as interfaces e seus endereços
sudo ifconfig -a
# Ativar (up) ou desativar (down) uma interface
sudo ifconfig eth0 up
sudo ifconfig eth0 down
# Atribuir IP e máscara
sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0
2.2. ip
(recomendado)
# Exibir todas as interfaces
ip addr show
# Ativar ou desativar uma interface
sudo ip link set dev eth0 up
sudo ip link set dev eth0 down
# Atribuir IP e máscara
sudo ip addr add 192.168.1.10/24 dev eth0
# Remover endereço IP
sudo ip addr del 192.168.1.10/24 dev eth0
# Ver rotas
ip route show
# Adicionar rota padrão
sudo ip route add default via 192.168.1.1
Dica: o comando ip
faz parte do pacote iproute2 e é mais completo, suportando roteamento, túneis, regras de firewall, etc.
3. Estatísticas e Conexões: netstat
vs. ss
3.1. netstat
(legado)
# Exibir todas as conexões TCP e UDP
netstat -tunlp
# Estatísticas dos protocolos
netstat -s
# Tabelas de roteamento
netstat -r
3.2. ss
(recomendado)
# Exibir conexões TCP
ss -tn
# Exibir conexões UDP
ss -un
# Mostrar processos associados
sudo ss -tunlp
# Estatísticas de socket
ss -s
Observação: ss
é mais rápido e detalhado, pois acessa diretamente dados do kernel.
4. Scripts de Diagnóstico
Criar scripts que automatizam checagens de rede facilita a identificação de problemas. A seguir, um exemplo simples em Bash:
#!/usr/bin/env bash
# diag-net.sh — Verifica conectividade básica
HOSTS=("8.8.8.8" "1.1.1.1" "google.com")
LOGFILE="./diag-net.log"
echo "=== Diagnóstico de Rede — $(date) ===" | tee -a $LOGFILE
# Checa interfaces ativas
echo -e "\n[Interfaces Ativas]" | tee -a $LOGFILE
ip addr show | grep -E "^[0-9]+: " | tee -a $LOGFILE
# Testa ping em cada destino
echo -e "\n[Teste de Latência]" | tee -a $LOGFILE
for H in "${HOSTS[@]}"; do
ping -c 3 -W 2 $H >/dev/null 2>&1
STATUS=$?
if [ $STATUS -eq 0 ]; then
echo "$H está alcançável" | tee -a $LOGFILE
else
echo "FALHA ao alcançar $H" | tee -a $LOGFILE
fi
done
# Lista conexões ativas
echo -e "\n[Conexões Ativas]" | tee -a $LOGFILE
ss -tunp | tee -a $LOGFILE
echo -e "\nDiagnóstico concluído.\n" | tee -a $LOGFILE
Salve como diag-net.sh
e torne executável:
chmod +x diag-net.sh
Execute:
./diag-net.sh
5. Resolução DNS Manual
5.1. Ferramentas de consulta
dig
# Consulta A record
dig example.com A +short
# Consulta MX record
dig example.com MX +short
# Usar servidor específico
dig @8.8.8.8 example.com A +short
host
host example.com
5.2. Arquivo /etc/hosts
Permite mapear nomes a IPs manualmente, útil para testes:
# /etc/hosts
127.0.0.1 localhost
192.168.1.100 servidor-teste.local
Após editar, salve e use:
ping servidor-teste.local
5.3. Arquivo /etc/resolv.conf
Define servidores DNS para todo o sistema:
# /etc/resolv.conf
search minha-rede.local
nameserver 192.168.1.1
nameserver 8.8.8.8
Atenção: em sistemas com NetworkManager ou systemd-resolved
, esse arquivo pode ser gerenciado automaticamente. Use nmcli
ou resolvectl
para ajustes permanentes.
6. Exercícios Práticos
- Configuração de IP
- Atribua à sua interface de rede um endereço IPv4 e configure uma rota.
- Análise de Conexões
- Liste todas as conexões estabelecidas em seu sistema e identifique o PID do processo que as originou.
- Script de Verificação
- Adapte o script de diagnóstico para registrar também a latência (tempo de resposta) de cada ping.
- Teste DNS
- Use
dig
para comparar respostas de dois servidores DNS distintos e analise diferenças de tempo de resposta.
- Use
7. Conclusão
Neste artigo você aprendeu a:
- Operar e configurar interfaces de rede com
ifconfig
eip
. - Monitorar conexões com
netstat
ess
. - Criar scripts shell simples para automatizar diagnósticos.
- Executar consultas DNS manuais e usar arquivos de configuração.
Com essas ferramentas e práticas, você estará apto a solucionar problemas básicos de conectividade em ambientes Linux.