Pular para o conteúdo
Início » 16 Comandos de Rede e Solução de Problemas

16 Comandos de Rede e Solução de Problemas

A configuração de rede e a solução de problemas no Linux são partes essenciais da administração do sistema. Mesmo para um desenvolvedor que trabalha com sistemas Linux, o conhecimento sobre comandos de rede no Linux é uma vantagem adicional. Especificamente, se você deseja se tornar um engenheiro DevOps ou fazer parte do SRE (Site Reliability Engineering), é essencial conhecer todos os comandos de solução de problemas do Linux, pois eles serão parte de suas atividades diárias. Este post abordará os comandos importantes de rede e solução de problemas que estão disponíveis nativamente nos sistemas Linux.

Lista de Comandos de Rede e Solução de Problemas no Linux

A seguir está a lista de comandos de solução de problemas disponíveis nativamente. Vamos entender cada comando e ver como podemos usá-lo para solucionar problemas no Linux.

Nota Importante: Cada comando/utilitário mencionado neste post possui muitas opções e flags. Cada comando tem uma página man e você pode usá-la para identificar as flags e opções necessárias para o seu caso de uso. Por exemplo, para o comando “ip”, você pode simplesmente digitar “man ip” no terminal para obter todos os detalhes sobre esse comando.

  1. hostname
    O comando “hostname” é usado para visualizar o nome do host da máquina e para definir o nome do host.
   hostname

Você pode usar o comando “hostname” para definir um novo nome de host para a máquina. Por exemplo,

   sudo hostname temp.com

Se você definir o nome do host usando o comando “hostname”, ao reiniciar a máquina, o nome do host mudará para o nome especificado no arquivo de nome do host (por exemplo: /etc/hostname). Portanto, se você deseja alterar o nome do host permanentemente, pode usar o arquivo /etc/hosts ou o arquivo de nome do host relevante presente no servidor. Para máquinas Ubuntu, você pode alterá-lo no arquivo /etc/hostname. Para RHEL, CentOS e Fedora, você pode alterá-lo no arquivo /etc/sysconfig/network.

  1. host
    O comando “host” é para a pesquisa reversa de IP ou um nome DNS. Por exemplo, se você quiser encontrar um DNS associado a um IP, pode usar os comandos “host” da seguinte forma:
   host 8.8.8.8

Você também pode fazer o inverso para encontrar o endereço IP associado ao nome de domínio. Por exemplo,

   host nerdexpert.com.br
  1. ping
    A utilidade de rede “ping” é usada para verificar se o servidor remoto está acessível ou não. É usado principalmente para verificar a conectividade e solucionar problemas de rede.
    Ele fornece os seguintes detalhes:
  • Bytes enviados e recebidos
  • Pacotes enviados, recebidos e perdidos
  • Tempo aproximado de ida e volta (em milissegundos)
    A sintaxe do comando “Ping” é a seguinte:
   ping <IP ou DNS>

Por exemplo,

   ping nerdexpert.com.br

Para pingar o endereço IP:

   ping 8.8.8.8

Se você quiser limitar a saída do “ping” sem usar ctrl+c, pode usar a flag “-c” com um número, como mostrado abaixo:

   ping -c 1 nerdexpert.com.br
  1. curl
    A utilidade “curl” é usada principalmente para transferir dados de ou para um servidor. No entanto, você pode usá-lo para solução de problemas de rede. Para solução de problemas de rede, o “curl” suporta protocolos como DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET e TFTP. Por exemplo, o “curl” pode verificar a conectividade na porta 22 usando telnet:
   curl -v telnet://192.168.33.10:22

Você pode verificar a conectividade FTP usando “curl”:

   curl ftp://ftptest.net

Você também pode solucionar problemas de conectividade do servidor web:

   curl https://nerdexpert.com.br -I
  1. wget
    O comando “wget” é usado principalmente para buscar páginas da web. Você pode usar o “wget” para solucionar problemas de rede também. Por exemplo, você pode solucionar conexões de servidor proxy usando “wget”:
   wget -e use_proxy=yes http_proxy=<proxy_host:port> http://siteexterno.com.br

Você pode verificar se um site está funcionando buscando os arquivos:

   wget www.google.com
  1. ip (ifconfig)
    O comando “ip” é usado para exibir e manipular rotas e interfaces de rede. O comando “ip” é a versão mais recente do “ifconfig”. O “ifconfig” funciona em todos os sistemas, mas é melhor usar o comando “ip” em vez do “ifconfig”. Vamos dar uma olhada em alguns exemplos do comando “ip”:
  • Exibir dispositivos e configuração de rede:
    ip addr
  • Você pode usar este comando com pipes e “grep” para obter uma saída mais granular, como o endereço IP da interface eth0. É muito útil quando você trabalha com ferramentas de automação que requerem que o IP seja buscado dinamicamente. O comando a seguir obtém o endereço IP da interface de rede eth0:
    ip a | grep eth0 | grep “inet” | awk -F” ” ‘{print $2}’
  • Obter detalhes de uma interface específica:
    ip a show eth0
  • Você pode listar as tabelas de roteamento:
    ip route ip route list
  1. arp
    ARP (Address Resolution Protocol) mostra a tabela de cache dos endereços IP e MAC das redes locais com as quais o sistema interagiu:
   arp
  1. ss (netstat)
    O comando “ss” é um substituto para o “netstat”. Você ainda pode usar o comando “netstat” em todos os sistemas. Usando o comando “ss”, você pode obter mais informações do que o comando “netstat”. O comando “ss” é rápido porque obtém todas as informações do espaço do usuário do kernel. Agora, vamos dar uma olhada em alguns usos do comando “ss”:
  • Listar todas as conexões:
    ss
  • Filtrar TCP, UDP e Unix sockets:
    ss -ta ss -ua ss -xa
  • Listar todas as portas em escuta:
    ss -lt
  • Listar todas as portas estabelecidas:
    ss -t -r state established
  1. traceroute
    Se você não tiver uma utilidade “traceroute” em seu sistema ou servidor, poderá instalá-la a partir do repositório nativo. O “traceroute” é uma utilidade de solução de problemas de rede. Usando o “traceroute”, você pode encontrar o número de saltos necessários para um pacote específico chegar ao destino. Por exemplo:
   traceroute google.com
  1. mtr
    A utilidade “mtr” é uma ferramenta de diagnóstico de rede para solucionar gargalos de rede. Combina a funcionalidade de ping e traceroute. Por exemplo, o seguinte comando mostra a saída do traceroute em tempo real: mtr google.com
  2. dig
    Se você tiver alguma tarefa relacionada à pesquisa de DNS, poderá usar o comando “dig” para consultar os servidores de nomes DNS. Por exemplo, para obter todos os registros DNS e informações TTL de um twitter.com: dig twitter.com ANY
  3. nslookup
    Nslookup (Name Server Lookup) é usado para verificar as entradas DNS. É semelhante ao comando “dig”. Para verificar os registros DNS de um domínio, você pode usar o seguinte comando: nslookup google.com
  4. nc (netcat)
    O comando “nc” (netcat) é conhecido como o exército suíço dos comandos de rede. Usando o “nc”, você pode verificar a conectividade de um serviço que está sendo executado em uma porta específica. Por exemplo: nc -v -n 192.168.33.10 22
  5. telnet
    O comando “telnet” é usado para solucionar as conexões TCP em uma porta. Para verificar a conectividade da porta usando “telnet”, use o seguinte comando: telnet 10.4.5.5 22
  6. route
    O comando “route” é usado para obter os detalhes da tabela de roteamento para o seu sistema e para manipulá-lo. Por exemplo: route -n
  7. tcpdump
    O comando “tcpdump” é usado principalmente para solucionar o tráfego de rede. Por exemplo:
    sudo tcpdump -i eth0

Conclusão

Neste artigo, abordamos as importantes utilidades de linha de comando do Linux para solução de problemas e configuração de rede. Se você está começando com administração de sistemas, DevOps ou funções SRE, é essencial aprender sobre essas utilidades para apoiar os projetos em que está trabalhando. Cada utilidade tem muitas funcionalidades, e você pode explorar mais para atender às suas necessidades.