ss command

Saiba como usar o comando ss para obter informações sobre sua máquina Linux e ver o que está acontecendo com as conexões de rede.

O Linux inclui uma enorme variedade de ferramentas disponíveis para atender a quase todas as necessidades. Do desenvolvimento para a segurança para a produtividade para a administração … se você tiver que fazer isso, o Linux está lá para servir. Uma das muitas ferramentas que os administradores freqüentemente se voltaram foi netstat. No entanto, o comando netstat foi obsoleto em favor do comando ss mais rápido e legível para humanos.

o O comando ss é uma ferramenta usada para despejar estatísticas de soquete e exibe informações de forma semelhante (embora mais simples e rápido) para netstat. O comando ss também pode exibir ainda mais informações de TCP e de estado do que a maioria das outras ferramentas. Como ss é o novo netstat, vamos dar uma olhada em como usar essa ferramenta para que você possa obter informações mais facilmente sobre sua máquina Linux e o que está acontecendo com as conexões de rede.

O utilitário de linha de comando ss pode exibir estatísticas para os gostos de sockets de domínio PACKET, TCP, UDP, DCCP, RAW e Unix. A substituição do netstat é mais fácil de usar (compare as páginas man para ter uma idéia imediata de quanto mais fácil é o ss).Com ss, você obtém informações muito detalhadas sobre como sua máquina Linux está se comunicando com outras máquinas, redes e serviços; Detalhes sobre conexões de rede, estatísticas de protocolo de rede e conexões de soquete Linux. Com esta informação em mãos, você pode resolver muito mais facilmente vários problemas de rede.

Vamos nos levantar com os ss, para que você possa considerá-lo uma nova ferramenta no seu kit de administrador.

Uso básico

O comando ss funciona como qualquer comando na plataforma Linux: emita o comando executável e siga-o com qualquer combinação das opções disponíveis. Se você olhar para a página man ss (emitir o comando man ss ), você notará que não há quase as opções encontradas para o comando netstat; No entanto, isso não equivale a uma falta de funcionalidade. Na verdade, ss é bastante poderoso.

Se você emitir o comando ss sem argumentos ou opções, ele retornará uma lista completa de sockets TCP com conexões estabelecidas ( Figura 1 ).

list of connections

Figura 1: lista completa de todas as conexões TCP estabelecidas.

Como o comando ss (sem opções) exibirá uma quantidade significativa de informações (todos os detalhes de conexão de socket tcp, udp e unix), você também pode enviar esse comando para um arquivo para visualização posterior, assim:

 ss> ss_output

Claro, um comando muito básico não é tão útil para cada situação. E se quisermos apenas visualizar os soquetes de escuta atuais? Simples, toque na opção -l, assim:

 ss -l

O comando acima só exibirá uma lista de sockets de escuta atuais.

Para torná-lo um pouco mais específico, pense nisso desta maneira: ss pode ser usado para exibir conexões TCP usando a opção -t , conexões UDP usando a opção -u ou UNIX usando a opção -x ; Então ss -t,   Ss -u, ou ss -x . Executar qualquer um desses comandos listará muitas informações para você pentear ( Figura 2 ).

UDP connections

Figura 2: executar ss -u no sistema operacional Elementar oferece uma exibição rápida de conexões UDP.

Por padrão, usando as opções -t , -u ou the -x sozinhas, apenas listarão as conexões que estão estabelecidas (ou conectadas). Se quisermos pegar as conexões que estão ouvindo, devemos adicionar a opção -a como:

ss -t -a

A saída do comando acima incluirá todos os soquetes TCP ( Figura 3 ).

ssh listening

Figura 3: Observe que o último soquete é o ssh que escuta no dispositivo.

No exemplo acima, você pode ver que as conexões UDP (em estados variados) estão sendo feitas a partir do endereço IP da minha máquina, de várias portas, para vários endereços IP, através de várias portas. Ao contrário da versão netstat deste comando, ss não exibe PID e o nome do comando responsável por essas conexões. Mesmo assim, você ainda tem muitas informações para começar a solução de problemas. Se algum desses portos ou URLs for suspeito, agora você sabe o endereço IP / Porto que está fazendo a conexão. Com isso, agora você tem as informações que podem ajudá-lo nos estágios iniciais da solução de problemas.

Filtragem ss com estados TCP

Uma opção muito útil disponível para o comando ss é a capacidade de filtrar usando estados TCP (os “estágios de vida” de uma conexão). Com estados, você pode filtrar mais facilmente seus resultados de comando ss. A ferramenta ss pode ser usada em conjunto com todos os estados TCP padrão:

    • established
    • syn-sent
    • syn-recv
    • fin-wait-1
    • fin-wait-2
    • time-wait
    • closed
    • close-wait
    • last-ack
    • listening
    • closing

Outros identificadores de estado disponíveis ss reconhecem são:

  • all (todos os estados acima)
  • connected (todos os estados com exceção de ouvir e fechar)
  • synchronized (todos os estados conectados, com exceção do sin-enviado)
  • bucket (estados que são mantidos como minisockets, por exemplo tempo de espera e
  • syn-recv)
  • big (Oposto ao estado do balde)

A sintaxe para trabalhar com estados é simples.

For tcp ipv4:
ss -4 state FILTER
For tcp ipv6:

ss -6 state FILTER

Onde FILTER é o nome do estado que deseja usar.

Diga que você deseja ver todos os soquetes IPv6 em sua máquina. Para isso, o comando seria:

ss -4 state listening

Os resultados desse comando pareceriam semelhantes à Figura 4 .

state filter

Figura 4: Usando ss com um filtro de estado de escuta.

Mostrar sockets conectados do endereço específico

Uma tarefa útil que você pode atribuir a ss é fazer com que as conexões de relatório sejam feitas por outro endereço IP. Diga que deseja descobrir se uma máquina no endereço IP 192.168.1.139 foi conectada ao seu servidor. Para isso, você pode emitir o comando:

ss dst 192.168.1.139

A informação resultante ( Figura 5 ) informará o Netid, o estado, a IP local: porta e o IP remoto: porta do soquete.

ssh connection

Figura 5: Uma máquina remota estabeleceu uma conexão ssh para nossa máquina local.

Faça com que funcione para você

O comando ss pode fazer um pouco para ajudá-lo a solucionar problemas com seu servidor Linux ou sua rede. Isso significaria que você demorasse a ler a página man de ss (emita o comando man ss ). Mas, neste momento, voc

Anúncios