🔍 Diagnóstico Básico
Comandos fundamentais para diagnosticar problemas de conectividade, verificar configurações de interface de rede e resolver questões relacionadas ao DNS. Essencial para a identificação rápida de falhas na infraestrutura de rede.
Testar Conectividade com Ping
Testa a conectividade de rede e a acessibilidade de um host específico, enviando pacotes ICMP ECHO_REQUEST. A flag `-c 4` limita o envio a 4 pacotes, fornecendo um teste rápido sem sobrecarregar a rede.
Ping Rápido com Intervalo Reduzido
Realiza um teste de conectividade com um intervalo reduzido entre os pacotes. A flag `-i 0.5` define um intervalo de 0.5 segundos entre cada ping, útil para testes rápidos de latência e para verificar a resposta em tempo real.
Rastrear Rota até Destino (Traceroute)
Exibe a rota que os pacotes IP percorrem para alcançar um destino, mostrando cada roteador (hop) no caminho. Ajuda a identificar gargalos, latência excessiva ou falhas em pontos específicos da rota de rede.
Traceroute Contínuo (MTR)
Combina as funcionalidades de `ping` e `traceroute` em uma ferramenta contínua. Ele exibe estatísticas de latência e perda de pacotes para cada hop em tempo real, ideal para monitoramento prolongado e identificação de problemas intermitentes.
Exibir Tabela ARP
Exibe a tabela ARP (Address Resolution Protocol) do sistema, que mapeia endereços IP para endereços MAC (físicos) na rede local. A flag `-a` mostra todas as entradas, sendo útil para depurar problemas de resolução de endereços na camada 2.
Exibir Interfaces e Endereços IP
Exibe informações detalhadas sobre todas as interfaces de rede configuradas no sistema, incluindo endereços IP, máscaras de sub-rede, estado da interface (UP/DOWN) e escopo. É a ferramenta moderna para substituir `ifconfig`.
Ativar Interface de Rede
Ativa a interface de rede `eth0`. Substitua `eth0` pelo nome da interface desejada (ex: `enp0s3`, `wlan0`). Use `ip link set eth0 down` para desativá-la. Requer privilégios de root.
Detalhes da Interface com Ethtool
Exibe e permite a configuração de parâmetros de baixo nível da interface de rede `eth0`, como velocidade, modo duplex, auto-negociação e estatísticas de hardware. Útil para verificar o estado físico da conexão.
Estatísticas da Interface de Rede
Mostra estatísticas de tráfego concisas (bytes enviados/recebidos, erros, pacotes descartados) para a interface de rede `eth0`. A flag `-s` exibe um resumo das estatísticas de pacotes e erros.
Listar Portas Abertas (Sockets)
Exibe informações sobre sockets de rede abertos no sistema. As flags `-t` (TCP), `-u` (UDP), `-l` (listening sockets) e `-n` (numérico, sem resolução de nomes) são comumente usadas para listar portas que estão aguardando conexões.
Consulta DNS com Nslookup
Consulta servidores DNS para obter informações sobre nomes de domínio, como endereços IP (registros A) e outros tipos de registros. É uma ferramenta mais antiga, mas ainda útil para consultas DNS básicas e rápidas.
Consulta DNS Completa com Dig
Uma ferramenta mais poderosa e flexível para consultas DNS. `ANY` solicita todos os tipos de registros DNS disponíveis para o domínio especificado, incluindo A, MX, NS, SOA, etc. Ideal para depuração avançada de DNS.
Rastrear Rota de Resolução DNS
Rastreia o caminho de resolução DNS para um domínio, mostrando os servidores DNS raiz, TLD e autoritativos consultados em cada etapa. Útil para entender como um nome é resolvido globalmente e identificar problemas de delegação.
Consultar Registros MX com Host
Consulta servidores DNS para obter informações sobre um domínio. A flag `-t mx` solicita especificamente os registros MX (Mail Exchanger), que indicam os servidores de e-mail responsáveis por receber mensagens para o domínio.
Status DNS do Systemd-Resolved
Exibe o status atual do resolvedor de DNS do sistema gerenciado pelo `systemd-resolved`, incluindo servidores DNS configurados, interfaces e domínios de pesquisa. Relevante em sistemas que usam `systemd` para gerenciamento de rede.
📊 Análise de Tráfego
Comandos para capturar, filtrar e analisar pacotes de rede, além de monitorar o tráfego em tempo real para identificar padrões, anomalias e problemas de desempenho. Ferramentas essenciais para depuração e segurança de rede.
Capturar Tráfego na Interface (tcpdump)
Captura e exibe o tráfego de rede passando pela interface `eth0` em tempo real. Requer privilégios de root. Use `Ctrl+C` para parar a captura. É uma ferramenta fundamental para inspeção de pacotes.
Capturar Tráfego sem Resolução DNS
Captura tráfego na interface `eth0` sem resolver endereços IP para nomes de host ou números de porta para nomes de serviço. A flag `-n` acelera a exibição e é útil em ambientes sem acesso DNS ou para focar apenas nos IPs.
Filtrar Tráfego por Porta
Filtra o tráfego na interface `eth0` para mostrar apenas pacotes que usam a porta 80 (geralmente HTTP). O filtro pode ser aplicado a portas de origem ou destino, facilitando a análise de serviços específicos.
sudo tcpdump -i eth0 port 80
Filtrar Tráfego por Host Específico
Captura apenas o tráfego que tem como origem ou destino o endereço IP `192.168.1.100` na interface `eth0`. Essencial para isolar o tráfego de um único dispositivo ou servidor.
sudo tcpdump -i eth0 host 192.168.1.100
Salvar Captura para Arquivo PCAP
Captura o tráfego da interface `eth0` e salva os pacotes brutos em um arquivo chamado `capture.pcap`. Este arquivo pode ser analisado posteriormente com `tcpdump` ou ferramentas gráficas como `Wireshark`.
sudo tcpdump -i eth0 -w capture.pcap
Ler Arquivo PCAP com Conteúdo ASCII
Lê e exibe o conteúdo de um arquivo de captura (`.pcap`) previamente salvo. A flag `-A` tenta imprimir cada pacote (excluindo o cabeçalho do link) em ASCII, útil para inspecionar dados de texto dentro dos pacotes.
sudo tcpdump -r capture.pcap -A
Captura em Tempo Real com Tshark
Inicia a captura de pacotes em tempo real na interface `eth0` usando `tshark`, a versão de linha de comando do Wireshark. Oferece capacidades de filtro e análise mais avançadas que `tcpdump`.
Analisar Arquivo PCAP com Tshark
Lê e exibe o conteúdo de um arquivo de captura (`.pcap`) usando `tshark`. Permite aplicar filtros de exibição e realizar análise detalhada dos pacotes gravados.
Filtrar Requisições HTTP em PCAP
Analisa um arquivo `.pcap` e exibe apenas os pacotes que correspondem ao filtro de exibição do Wireshark `http.request`, mostrando detalhadamente as requisições HTTP capturadas.
tshark -r capture.pcap -Y "http.request"
Extrair IPs Origem/Destino de PCAP
Extrai e exibe campos específicos de pacotes de um arquivo `.pcap`. `-T fields` especifica o formato de saída como campos, e `-e` lista os campos a serem extraídos (neste caso, endereço IP de origem e destino).
tshark -r capture.pcap -T fields -e ip.src -e ip.dst
Estatísticas de Conversas IP com Tshark
Analisa um arquivo `.pcap` e gera estatísticas de conversas IP. `-q` suprime a saída de pacotes, e `-z conv,ip` ativa o estatístico de conversas IP, mostrando o volume de dados e pacotes entre pares de IPs.
tshark -r capture.pcap -q -z conv,ip
Monitorar Tráfego em Tempo Real (iftop)
Exibe o uso de banda em tempo real para a interface `eth0`, mostrando as conexões que estão consumindo mais largura de banda, ordenadas por volume. Requer `sudo` e a instalação do `iftop`.
Monitorar Tráfego por Processo (nethogs)
Mostra o consumo de largura de banda por processo na interface `eth0`. Útil para identificar quais aplicações estão gerando mais tráfego de rede em tempo real. Requer `sudo` e a instalação do `nethogs`.
Monitor de Banda Gráfico (bmon)
Um monitor de banda e estatísticas de rede que oferece uma visão gráfica e detalhada do tráfego em todas as interfaces. Proporciona uma interface interativa para visualização de métricas de rede. Requer a instalação do `bmon`.
Estatísticas de Rede Detalhadas (iptraf-ng)
Uma ferramenta de monitoramento de rede interativa que coleta e exibe uma variedade de estatísticas, incluindo informações de IP, TCP, UDP, ICMP, Ethernet, e mais. Útil para uma análise profunda do tráfego. Requer a instalação do `iptraf-ng`.
Estatísticas de Rede com Sar
Coleta, reporta ou salva informações de atividade do sistema. `-n DEV` especifica o relatório de estatísticas de rede por dispositivo, `1` é o intervalo em segundos e `5` é o número de amostras a serem coletadas. Parte do pacote `sysstat`.
🔒 Firewall e Segurança
Comandos para configurar e gerenciar firewalls (UFW, iptables) e proteger o sistema contra ataques e acessos não autorizados com ferramentas como Fail2Ban. Essencial para manter a integridade e a segurança da rede.
Ativar Firewall UFW
Ativa o firewall UFW (Uncomplicated Firewall). Certifique-se de ter regras de acesso SSH configuradas antes de habilitar em servidores remotos para evitar o bloqueio do acesso. Requer privilégios de root.
Status Detalhado do UFW
Exibe o status atual do UFW, mostrando se está ativo, as regras configuradas, o perfil padrão e o log de regras. A flag `verbose` fornece mais detalhes sobre as regras e o tráfego.
Permitir Conexão SSH (UFW)
Cria uma regra para permitir conexões TCP na porta 22 (SSH). É crucial permitir o SSH antes de habilitar o firewall em servidores remotos para manter o acesso administrativo.
Bloquear IP Específico (UFW)
Cria uma regra para bloquear todas as conexões de entrada provenientes do endereço IP `192.168.1.100`. Útil para mitigar ataques ou bloquear acessos indesejados de um IP conhecido.
sudo ufw deny from 192.168.1.100
Remover Regra UFW
Remove uma regra existente que permite o tráfego na porta 80. Para remover uma regra específica, você pode usar `ufw status numbered` para ver as regras com números e depois `ufw delete <número>`.
Recarregar Regras UFW
Recarrega as regras do UFW após modificações, aplicando as novas configurações sem a necessidade de reiniciar o serviço. Isso garante que as alterações entrem em vigor imediatamente.
Listar Regras Iptables
Lista todas as regras do firewall `iptables`. `-L` lista as regras, `-n` exibe endereços e portas numericamente (sem resolução DNS para maior velocidade), e `-v` mostra detalhes como contadores de pacotes/bytes.
Permitir Porta Específica (Iptables)
Adiciona (`-A`) uma regra à cadeia `INPUT` para permitir (`-j ACCEPT`) conexões TCP (`-p tcp`) destinadas à porta 22 (`--dport 22`). Esta regra permite o tráfego SSH de entrada.
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Bloquear Sub-rede (Iptables)
Adiciona uma regra à cadeia `INPUT` para descartar (`-j DROP`) todos os pacotes provenientes da sub-rede `192.168.1.0/24`. Útil para isolar ou bloquear tráfego de uma rede específica.
sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP
Limpar Todas as Regras Iptables
Limpa (`-F`, flush) todas as regras de todas as cadeias do `iptables`. Use com extrema cautela, pois isso pode abrir seu sistema para todo o tráfego e comprometer a segurança.
Salvar Regras Iptables
Salva as regras atuais do `iptables` para um arquivo. Em muitos sistemas, este arquivo é usado para restaurar as regras na inicialização do sistema, garantindo a persistência das configurações do firewall.
sudo iptables-save > /etc/iptables/rules.v4
Status Geral do Fail2Ban
Exibe o status geral do serviço Fail2Ban, incluindo quais "jails" (serviços monitorados, como SSH, Apache) estão ativos e o número total de IPs banidos.
sudo fail2ban-client status
Status Específico do Jail SSHd (Fail2Ban)
Mostra o status específico do "jail" `sshd`, incluindo quantos IPs foram banidos e quais IPs estão atualmente banidos para o serviço SSH. Útil para monitorar tentativas de força bruta.
sudo fail2ban-client status sshd
Desbloquear IP com Fail2Ban
Desbane manualmente um endereço IP (`192.168.1.100`) do "jail" `sshd`. Útil se um IP legítimo foi bloqueado acidentalmente ou se o acesso precisa ser restaurado rapidamente.
sudo fail2ban-client set sshd unbanip 192.168.1.100
Recarregar Configuração Fail2Ban
Recarrega a configuração do Fail2Ban, aplicando quaisquer mudanças feitas nos arquivos de configuração (ex: `jail.local`) sem a necessidade de reiniciar o serviço completo.
sudo fail2ban-client reload
⚖️ Load Balancing
Comandos para gerenciar e monitorar soluções de balanceamento de carga como HAProxy, Nginx e IPVS, garantindo a distribuição eficiente do tráfego entre múltiplos servidores e alta disponibilidade de aplicações.
Validar Configuração HAProxy
Valida a sintaxe do arquivo de configuração do HAProxy (`/etc/haproxy/haproxy.cfg`) sem iniciar ou reiniciar o serviço. Essencial para evitar erros antes de aplicar mudanças em produção.
haproxy -f /etc/haproxy/haproxy.cfg -c
Reiniciar Serviço HAProxy
Reinicia o serviço HAProxy. Isso aplica novas configurações e pode causar uma breve interrupção no serviço, dependendo da configuração de alta disponibilidade.
sudo systemctl restart haproxy
Informações do HAProxy via Socket
Exibe informações gerais sobre o estado de execução do HAProxy, como versão, uptime, número de processos e estatísticas de sessão. Requer `socat` e acesso ao socket de controle do HAProxy.
echo "show info" | socat stdio /var/run/haproxy.sock
Estatísticas do HAProxy via Socket
Exibe estatísticas detalhadas sobre os frontends, backends e servidores, incluindo conexões ativas, sessões, taxas de requisição e erros. Útil para monitoramento de desempenho e saúde dos servidores.
echo "show stat" | socat stdio /var/run/haproxy.sock
Testar Configuração Nginx
Testa a sintaxe do arquivo de configuração do Nginx. É crucial executar este comando antes de recarregar ou reiniciar o Nginx para garantir que não há erros de configuração que possam derrubar o serviço.
Recarregar Configuração Nginx
Recarrega a configuração do Nginx sem derrubar as conexões existentes. É a maneira preferida de aplicar mudanças na configuração de um servidor Nginx em produção, garantindo zero downtime.
Status do Nginx Load Balancer
Faz uma requisição HTTP HEAD para a URL de status do Nginx (se configurada), exibindo métricas como conexões ativas, conexões aceitas e conexões manipuladas. Requer o módulo `ngx_http_stub_status_module`.
curl -I http://localhost/nginx_status
Monitorar Logs de Acesso Nginx
Monitora em tempo real o arquivo de log de acesso do Nginx, mostrando as requisições HTTP à medida que chegam ao servidor. Útil para depuração, observação do tráfego e identificação de padrões de acesso.
tail -f /var/log/nginx/access.log
Listar Regras IPVS (Linux Virtual Server)
Lista todas as regras de serviços virtuais e servidores reais configurados no IPVS (Linux Virtual Server). `-n` evita a resolução de nomes para IPs e portas, tornando a saída mais rápida e concisa.
Adicionar Serviço Virtual IPVS
Adiciona (`-A`) um serviço virtual TCP (`-t`) no endereço `192.168.1.100` na porta 80, usando o algoritmo de agendamento `rr` (round-robin) para distribuir a carga entre os servidores reais.
sudo ipvsadm -A -t 192.168.1.100:80 -s rr
Adicionar Servidor Real ao IPVS
Adiciona (`-a`) um servidor real (`-r`) com IP `192.168.1.101` e porta 80 ao serviço virtual `192.168.1.100:80`, usando o método de roteamento `masquerading` (`-m`).
sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -m
Taxa de Conexões IPVS
Lista as regras do IPVS, incluindo as taxas de conexão e tráfego para cada serviço virtual e servidor real, fornecendo métricas de desempenho e uso em tempo real.
🔐 VPN
Comandos para configurar, gerenciar e monitorar conexões VPN usando OpenVPN, WireGuard e IPSec (strongSwan), garantindo comunicações seguras e acesso remoto protegido para redes e serviços.
Status do Serviço OpenVPN
Verifica o status do serviço OpenVPN. Em sistemas baseados em `systemd`, ele mostra se o servidor ou cliente OpenVPN está em execução, seu uptime e atividade recente. Útil para depuração.
sudo systemctl status openvpn
Conectar Cliente OpenVPN
Inicia uma conexão OpenVPN como cliente, usando o arquivo de configuração `client.ovpn`. Este comando é executado no lado do cliente para estabelecer o túnel VPN seguro.
openvpn --config client.ovpn
Iniciar Servidor OpenVPN em Daemon
Inicia o servidor OpenVPN em segundo plano (`--daemon`), usando o arquivo de configuração `server.conf`. Requer privilégios de root. O servidor fica escutando por conexões de clientes.
sudo openvpn --config server.conf --daemon
Monitorar Logs OpenVPN
Monitora em tempo real o arquivo de log do OpenVPN, que registra eventos de conexão, autenticação, erros e desconexões. Essencial para depuração e auditoria da VPN.
tail -f /var/log/openvpn.log
Gerar Chaves WireGuard
Gera um par de chaves criptográficas (privada e pública) para o WireGuard. A chave privada é salva em `private.key` e a pública em `public.key`. Fundamental para a configuração de peers.
wg genkey | tee private.key | wg pubkey > public.key
Ativar Interface WireGuard
Ativa a interface WireGuard `wg0` (ou o nome configurado), estabelecendo a conexão VPN de acordo com a configuração em `/etc/wireguard/wg0.conf`. Requer privilégios de root.
Status da VPN WireGuard
Exibe o status atual de todas as interfaces WireGuard ativas, incluindo chaves públicas, peers conectados, endereços IP e tráfego de dados. Útil para verificar a conectividade e configuração.
Desativar Interface WireGuard
Desativa a interface WireGuard `wg0`, encerrando a conexão VPN e removendo as configurações de rede associadas. Requer privilégios de root.
Status do IPSec (strongSwan)
Exibe o status geral do serviço strongSwan IPSec, incluindo informações sobre as conexões configuradas, túneis estabelecidos, peers e estatísticas de tráfego. Útil para monitoramento e depuração.
Iniciar Conexão IPSec
Inicia uma conexão IPSec específica, identificada por `connection-name`, conforme configurado nos arquivos de strongSwan (ex: `ipsec.conf`). Estabelece o túnel VPN.
sudo ipsec up connection-name
Encerrar Conexão IPSec
Encerra uma conexão IPSec específica, liberando os recursos e o túnel VPN associado. Desconecta o cliente ou servidor da VPN.
sudo ipsec down connection-name
Recarregar Configuração IPSec
Recarrega a configuração do strongSwan sem reiniciar o daemon, aplicando quaisquer alterações feitas nos arquivos de configuração do IPSec. Garante que as novas regras entrem em vigor.
⚡ Performance e Otimização
Comandos para ajustar parâmetros do kernel relacionados à rede, configurar Qualidade de Serviço (QoS) e realizar testes de desempenho para otimizar o throughput, a latência e a eficiência geral da rede.
Exibir Buffer Máximo de Recebimento
Exibe o valor máximo do buffer de recebimento de socket em bytes para todas as conexões. Ajustar este valor pode melhorar o desempenho em redes de alta largura de banda e alta latência, permitindo que o sistema armazene mais dados antes de processá-los.
Exibir Buffer Máximo de Envio
Exibe o valor máximo do buffer de envio de socket em bytes para todas as conexões. Semelhante ao `rmem_max`, seu ajuste pode otimizar o throughput de envio, especialmente em cenários de alta demanda.
Algoritmo de Controle de Congestionamento TCP
Exibe o algoritmo de controle de congestionamento TCP atualmente em uso (ex: `cubic`, `bbr`). A escolha do algoritmo pode impactar significativamente o desempenho da rede, especialmente em links com perda de pacotes ou alta latência.
sysctl net.ipv4.tcp_congestion_control
Tamanho da Fila de Escuta TCP
Exibe o tamanho máximo da fila de escuta para sockets TCP. Um valor baixo pode levar a conexões recusadas (connection refused) em servidores com alto volume de requisições, pois novas conexões não podem ser enfileiradas.
sysctl net.core.somaxconn
Exibir Fila de Tráfego (Qdisc)
Exibe as disciplinas de enfileiramento (qdisc - queueing discipline) configuradas para a interface de rede `eth0`. As qdiscs são usadas para gerenciar a forma como os pacotes são enfileirados e transmitidos, sendo a base do QoS.
Criar HTB Qdisc para QoS
Cria uma disciplina de enfileiramento Hierarchical Token Bucket (HTB) como raiz (`root`) na interface `eth0`, com handle `1:` e classe padrão `30`. HTB é usado para controle de banda hierárquico, permitindo priorização e limitação.
sudo tc qdisc add dev eth0 root handle 1: htb default 30
Limitar Banda com Classe HTB
Adiciona uma classe HTB (`classid 1:1`) sob o qdisc pai `1:` na interface `eth0`, limitando a taxa de saída para 1 Megabit por segundo (`rate 1mbit`). Isso permite controlar a largura de banda disponível para tráfego específico.
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit
Filtrar Tráfego por Porta para QoS
Adiciona um filtro para direcionar o tráfego IP de destino na porta 80 (`dport 80`) para a classe `1:10` (que deve ser definida previamente com uma taxa ou prioridade). `u32` é um classificador poderoso para regras de filtragem complexas.
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:10
Remover Configuração QoS
Remove a disciplina de enfileiramento raiz (`root`) da interface `eth0`, desativando todas as regras de QoS configuradas para essa interface. Isso restaura o comportamento padrão de enfileiramento.
sudo tc qdisc del dev eth0 root
Iniciar Servidor Iperf3
Inicia o servidor `iperf3`, que aguarda conexões de clientes para realizar testes de throughput de rede. O servidor escuta na porta padrão 5201. Essencial para medir a largura de banda entre dois pontos.
Teste de Throughput com Iperf3
Inicia um teste de throughput como cliente `iperf3`, conectando-se ao `server_ip` e executando o teste por 30 segundos (`-t 30`). Exibe a largura de banda média alcançada durante o período.
iperf3 -c server_ip -t 30
Teste de Latência com Ping (Resumo)
Realiza 100 pings com um intervalo de 0.1 segundos para `server_ip` e exibe apenas a última linha da saída, que contém o resumo das estatísticas de latência (min/avg/max/mdev). Útil para testes rápidos de latência.
ping -c 100 -i 0.1 server_ip | tail -1
Testar Porta Aberta com Netcat
Testa se uma porta específica (neste caso, 80) está aberta e acessível em um `server_ip`. A flag `-z` faz um scan sem enviar dados, e `-v` fornece saída verbosa, indicando sucesso ou falha na conexão.
netcat -z -v server_ip 80