Como usar o comando ss no Linux
Fatmawati Achmad Zaenuri / Shutterstock
O comando ss é um substituto moderno para o netstat clássico. Você pode usá-lo no Linux para obter estatísticas sobre suas conexões de rede. Veja como trabalhar com esta ferramenta útil.
O comando ss versus netstat
Um substituto para o comando netstat obsoleto, ss, fornece informações detalhadas sobre como o computador se comunica com outros computadores, redes e serviços.
ss exibe estatísticas para TCP (Transmission Control Protocol), UDP (User Datagram Protocol), Unix (interprocesso) e soquetes brutos. Os soquetes brutos operam no nível OSI da rede, o que significa que os cabeçalhos TCP e UDP precisam ser manipulados pelo software aplicativo, não pela camada de transporte. As mensagens do protocolo ICMP (Internet Control Message Protocol) e o utilitário ping usam soquetes brutos.
Usando ss
Você não precisa instalar o ss, pois ele já faz parte de uma distribuição Linux atualizada. Sua produção, no entanto, pode ser muito longa; tivemos resultados contendo mais de 630 linhas. Os resultados também são muito amplos.
Por esse motivo, incluímos representações de texto dos resultados obtidos, pois não caberiam em uma captura de tela. Nós os cortamos para torná-los mais gerenciáveis.
Listando conexões de rede
O uso de ss sem opções de linha de comando lista os soquetes que não estão escutando. Ou seja, lista os soquetes que não estão no estado de escuta.
Para ver isso, digite o seguinte:
ss
Endereço Local de Recv-Q de Envio de Q do Estado Líquido: Endereço de Ponto de Porta: Processo de Porta u_str ESTAB 0 0 * 41826 * 41827 u_str ESTAB 0 0 / run / systemd / journal / stdout 35689 * 35688 u_str ESTAB 0 0 * 35550 * 35551 ... u_str ESTAB 0 0 * 38127 * 38128 u_str ESTAB 0 0 / run / dbus / system_bus_socket 21243 * 21242 u_str ESTAB 0 0 * 19039 * 19040 u_str ESTAB 0 0 / run / systemd / journal / stdout 18887 * 18885 u_str ESTAB 0 0 / run / dbus / system_bus_socket 19273 * 17306 icmp6 UNCONN 0 0 *: ipv6-icmp *: * udp ESTAB 0 0 192.168.4.28% enp0s3: bootpc 192.168.4.1:bootps
As colunas são as seguintes:
- Netid: o tipo de soquete. No nosso exemplo, temos & ubstr; ” um fluxo Unix, um & udp; ” e “ icmp6, ” um soquete ICMP IP versão 6. Você pode encontrar mais descrições dos tipos de soquetes do Linux nas páginas de manual do Linux.
- Estado: o estado em que o soquete está.
- Recv-Q: o número de pacotes recebidos.
- Enviar-Q: O número de pacotes enviados.
- Endereço Local: Porta: O endereço local e a porta (ou valores equivalentes para soquetes Unix).
- Endereço Par : Porta: o endereço remoto e a porta (ou valores equivalentes para soquetes Unix).
Para soquetes UDP, o “ State ” coluna geralmente está em branco. Para soquetes TCP, pode ser um dos seguintes:
- ESCUTE: somente do lado do servidor. O soquete está aguardando uma solicitação de conexão.
- SYN-SENT: somente do lado do cliente. Este soquete fez uma solicitação de conexão e está aguardando para ver se é aceito.
- SYN-RECEIVED: Somente no servidor. Esse soquete aguarda uma confirmação de conexão após aceitar uma solicitação de conexão.
- ESTABELECIDO: Servidor e clientes. Uma conexão de trabalho foi estabelecida entre o servidor e o cliente, permitindo a transferência de dados entre os dois.
- FIN-WAIT-1: Servidor e clientes. Esse soquete aguarda uma solicitação de encerramento de conexão do soquete remoto ou uma confirmação de uma solicitação de término de conexão que foi enviada anteriormente desse soquete.
- FIN-WAIT-2: Servidor e clientes. Esse soquete aguarda uma solicitação de encerramento de conexão do soquete remoto.
- CLOSE-WAIT: Servidor e cliente. Esse soquete aguarda uma solicitação de término de conexão do usuário local.
- FECHAMENTO: Servidor e clientes. Este soquete aguarda uma confirmação de solicitação de encerramento de conexão do soquete remoto.
- LAST-ACK: Servidor e cliente. Esse soquete aguarda o reconhecimento da solicitação de término da conexão enviada ao soquete remoto.
- TIME-WAIT: Servidor e clientes. Este soquete enviou uma confirmação ao soquete remoto para informar que recebeu a solicitação de término do soquete remoto. Agora está aguardando para garantir que o reconhecimento foi recebido.
- FECHADO: Não há conexão, portanto o soquete foi encerrado.
Listando soquetes de escuta
Para ver os soquetes de escuta, adicionaremos a opção -l (escuta), assim:
ss -l
Endereço Local de Recv-Q de Envio de Q do Estado Líquido: Endereço de Ponto de Porta: Processo de Porta n UNCONN 0 0 rtnl: NetworkManager / 535 * nl UNCONN 0 0 rtnl: add-evolution / 2987 * ... u_str LISTEN 0 4096 / run / systemd / private 13349 * 0 u_seq LISTEN 0 4096 / run / udev / control 13376 * 0 u_str LISTEN 0 4096 /tmp/.X11-unix/X0 33071 * 0 u_dgr UNCONN 0 0 / run / systemd / journal / syslog 13360 * 0 u_str LISTEN 0 4096 /run/systemd/fsck. progress 13362 * 0 u_dgr UNCONN 0 0 / run / user / 1000 / systemd / notify 32303 * 0
Esses soquetes estão todos desconectados e escutando. O “ rtnl ” significa roteamento netlink, que é usado para transferir informações entre os processos do kernel e do espaço do usuário.
Listando todos os soquetes
Para listar todos os soquetes, você pode usar a opção -a (all):
ss -a
Endereço Local de Recv-Q de Envio de Q do Estado Líquido: Endereço de Ponto de Porta: Processo de Porta nl UNCONN 0 0 rtnl: NetworkManager / 535 * nl UNCONN 0 0 rtnl: evolução-endereço / 2987 * ... u_str LISTEN 0 100 public / showq 23222 * 0 u_str LISTEN 0 100 privado / erro 23225 * 0 u_str LISTEN 0 100 privado / tente novamente 23228 * 0 ... udp UNCONN 0 0 0.0.0.0:631 0.0.0.0:* udp UNCONN 0 0 0.0 .0.0: mdns 0.0.0.0:* ... tcp LISTEN 0 128 [::]: ssh [::]: * tcp LISTEN 0 5 [:: 1]: ipp [::]: * tcp LISTEN 0 100 [ :: 1]: smtp [::]: *
A saída contém todos os soquetes, independentemente do estado.
Listando soquetes TCP
Você também pode aplicar um filtro para que apenas os soquetes correspondentes sejam exibidos. Usaremos a opção -t (TCP), portanto, apenas os soquetes TCP serão listados:
ss -a -t
Listando soquetes UDP
A opção -u (UDP) executa o mesmo tipo de ação de filtragem. Desta vez, veremos apenas soquetes UDP:
ss -a -u
Endereço Local do Recv-Q Send-Q do Estado: Endereço do Ponto da Porta: Processo da Porta UNCONN 0 0 0.0.0.0:631 0.0.0.0:* UNCONN 0 0 0.0.0.0:mdns 0.0.0.0:* UNCONN 0 0 0.0.0.0:60734 0.0.0.0:* UNCONN 0 0 127.0.0.53% lo: domain 0.0.0.0:* ESTAB 0 0 192.168.4.28% enp0s3: bootpc 192.168.4.1:bootps UNCONN 0 0 [::]: mdns [::]: * UNCONN 0 0 [::]: 51193 [::]: *
Listando soquetes Unix
Para ver apenas soquetes Unix, você pode incluir a opção -x (Unix), como mostrado abaixo:
ss -a -x
Endereço Local de Recv-Q do Estado Líquido de Envio-Q: Endereço do Ponto de Porta: Processo da Porta u_str ESTAB 0 0 * 41826 * 41827 u_str ESTAB 0 0 * 23183 * 23184 u_str ESTAB 28 0 @ / tmp / .X11- unix / X0 52640 * 52639 ... u_str ESTAB 0 0 / run / systemd / journal / stdout 18887 * 18885 u_str ESTAB 0 0 / run / dbus / system_bus_socket 19273 * 17306
Listando soquetes brutos
O filtro para soquetes brutos é a opção -w (bruta):
ss -a -w
Listando soquetes IP versão 4
Soquetes usando o protocolo TCP / IP versão 4 podem ser listados usando a opção -4 (IPV4):
ss -a -4
Listando soquetes IP versão 5
Você pode ativar o filtro IP versão 6 correspondente com a opção -6 (IPV6), da seguinte forma:
ss -a -6
Listando soquetes por estado
Você pode listar soquetes pelo estado em que eles estão com a opção state. Isso funciona com estados estabelecidos, ouvintes ou fechados. Também usaremos a opção de resolução (-r), que tenta resolver endereços de rede para nomes e portas para protocolos.
O comando a seguir procurará conexões TCP estabelecidas e ss tentará resolver os nomes:
estado ss -t -r estabelecido
São listadas quatro conexões que estão no estado estabelecido. O nome do host, ubuntu20-04, foi resolvido e o “ ssh ” é mostrado em vez de 22 para a conexão SSH na segunda linha.
Podemos repetir isso para procurar soquetes no estado de escuta:
ss -t -r estado ouvindo
Endereço Local de Recv-Q Send-Q: Endereço do Ponto da Porta: Processo da Porta 0 128 localhost: 5939 0.0.0.0:* 0 4096 localhost% lo: domain 0.0.0.0:* 0 128 0.0.0.0:ssh 0.0.0.0:* 0 5 localhost: ipp 0.0.0.0:* 0 100 localhost: smtp 0.0.0.0:* 0 128 [::]: ssh [::]: * 0 5 ip6-localhost: ipp [::] : * 0 100 ip6-localhost: smtp [::]: *
Listando soquetes por protocolo
Você pode listar os soquetes usando um protocolo específico com as opções dport e sport, que representam as portas de destino e de origem, respectivamente.
Digitamos o seguinte para listar soquetes usando o protocolo HTTPS em uma conexão estabelecida (observe o espaço após o parêntese de abertura e antes do fechamento):
ss - um estado estabelecido '(dport =: https ou sport =: https)'
Podemos usar o nome do protocolo ou a porta geralmente associada a esse protocolo. A porta padrão do Secure Shell (SSH) é a porta 22.
Vamos usar o nome do protocolo em um comando e depois repeti-lo usando o número da porta:
ss -a '(dport =: ssh ou sport =: ssh)'
ss -a '(dport =: 22 ou esporte =: 22)'
Como esperado, obtemos os mesmos resultados.
Listando conexões com um endereço IP específico
Com a opção dst (destino), podemos listar conexões com um endereço IP de destino específico.
Digitamos o seguinte:
ss -a dst 192.168.4.25
Identificando processos
Para ver quais processos estão usando os soquetes, você pode usar a opção de processos (-p), como mostrado abaixo (observe que você deve usar o sudo):
sudo ss -t -p
Endereço Local do Recv-Q Send-Q do Estado: Endereço do Ponto da Porta: Processo da Porta ESTAB 0 0 192.168.4.28:57650 54.218.19.119:https users: ((("firefox", pid = 3378, fd = 151 )) ESTAB 0 0 192.168.4.28:ssh 192.168.4.25:43946 usuários: (("sshd", pid = 4086, fd = 4), ("sshd", pid = 3985, fd = 4))
Isso nos mostra que as duas conexões estabelecidas nos soquetes TCP estão sendo usadas pelo daemon SSH e pelo Firefox.
Um sucessor digno
O comando ss fornece as mesmas informações fornecidas anteriormente pelo netstat, mas de uma maneira mais simples e acessível. Você pode conferir a página do manual para obter mais opções e dicas.
Via: How to Geek
Nenhum comentário