Como usar o comando ss no Linux

Conteúdo

Uma janela de terminal em um sistema portátil Linux.

a ss O comando é um substituto moderno para o clássico. netstat. Você pode usá-lo no Linux para obter estatísticas sobre suas conexões de rede. Veja como trabalhar com esta ferramenta útil.

El comando ss versus netstat

Uma substituição para o obsoleto netstat comando, ss dá a você informações detalhadas sobre como o seu computador se comunica com outros computadores, redes e serviços.

ss mostra estatísticas de protocolo de Controle de Transmissão (TCP), Protocolo de datagrama do usuário (UDP), Unix (interprocesso)e plugues brutos. Rodapés brutos operar no nível OSI da rede, o que significa que os cabeçalhos TCP e UDP devem ser tratados pelo software aplicativo, não pela camada de transporte. Internet Control Message Protocol (ICMP) e os apito utilitário ambos usam sockets raw.

Usando ss

Você não tem que instalar ss, como já faz parte de uma distribuição Linux atualizada. Porém, sua partida pode ser muito longa; obtivemos resultados que contêm mais de 630 linhas. Os resultados também são muito amplos.

Devido a isto, incluímos representações de texto dos resultados que obtivemos, ya que no cabrían en una captura de pantalla. Los hemos recortado para que sean más manejables.

Listado de conexiones de red

Usando ss sin opciones de línea de comandos enumera los sockets que no están escuchando. Quer dizer, enumera los sockets que no están en estado de escucha.

Para ver isso, escreva o seguinte:

WL

Netid State Recv-Q Send-Q          Local Address:Port Peer Address:Port   Process
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

Las columnas son las siguientes:

  • Netid: Tipo de tomada. Em nosso exemplo, nós temos "u_str", um fluxo Unix, um "udp" e "icmp6", uma versão de soquete ICMP 6 IP. Você pode encontrar mais descrições de Tipos de soquetes Linux nas páginas de manual do Linux.
  • Estado: O estado do soquete.
  • Recv-Q: O número de pacotes recebidos.
  • Send-Q: O número de pacotes enviados.
  • Endereço local: Puerto: O endereço local e a porta (ou valores equivalentes para sockets Unix).
  • Gestão de pares: Puerto: O endereço remoto e a porta (ou valores equivalentes para sockets Unix).

Para soquetes UDP, coluna “Estado” suele estar en blanco. Para sockets TCP, pode ser um dos seguintes:

  • ESCUTA: Somente lado do servidor. O soquete está esperando por uma solicitação de conexão.
  • NÃO ENVIAR: Somente do lado do cliente. Este soquete fez um pedido de conexão e está esperando para ver se ele é aceito.
  • SYN-RECEIVED: Somente lado do servidor. Este soquete está esperando por uma confirmação de conexão após aceitar um pedido de conexão.
  • ESTABELECIDOS: Servidor e clientes. Uma conexão de trabalho foi estabelecida entre o servidor e o cliente, permitindo que os dados sejam transferidos entre os dois.
  • FIN-WAIT-1: Servidor e clientes. Este conector está aguardando uma solicitação de encerramento de conexão do conector remoto, ou uma confirmação de uma solicitação de encerramento de conexão que foi enviada anteriormente a partir deste conector.
  • FIN-WAIT-2: Servidor e clientes. Este conector está aguardando uma solicitação de encerramento de conexão do conector remoto.
  • CLOSE-WAIT: Servidor e cliente. Este conector está esperando por uma solicitação de encerramento de conexão do usuário local.
  • FECHO: Servidor e clientes. Este conector está aguardando uma confirmação de solicitação de encerramento de conexão do conector remoto.
  • ÚLTIMO RECONHECIMENTO: Servidor e cliente. Este conector está aguardando uma confirmação da solicitação de encerramento de conexão que você enviou para o conector remoto.
  • TEMPO DE ESPERA: Servidor e clientes. Este conector enviou uma confirmação ao conector remoto para informá-lo de que recebeu a solicitação de encerramento do conector remoto. Agora você está esperando para ter certeza de que a confirmação foi recebida.
  • FECHADO: Sem conexão, por lo que el socket se ha terminado.

Listado de enchufes de escucha

Para ver las tomas de escucha, agregaremos el -l (escuchando) opção, Então:

ss -l

Netid State  Recv-Q Send-Q               Local Address:Port                  Peer Address:Port Process 
nl    UNCONN 0      0                             rtnl:NetworkManager/535                * 
nl    UNCONN 0      0                             rtnl:evolution-addre/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

Todos estos enchufes están desconectados y escuchando. o “rtnlsignifica enrutamiento de enlace de red, que se utiliza para transferir información entre el kernel y los procesos del espacio de usuario.

Listado de todos los enchufes

Para enumerar todos los enchufes, você pode usar o -a (tudo) opção:

ss -a

Netid State  Recv-Q Send-Q    Local Address:Port                 Peer Address:Port    Process 
nl    UNCONN 0      0                  rtnl:NetworkManager/535               * 
nl    UNCONN 0      0                  rtnl:evolution-addre/2987 * 
...
u_str LISTEN 0      100       public/showq 23222                            * 0 
u_str LISTEN 0      100      private/error 23225                            * 0 
u_str LISTEN 0      100      private/retry 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                           [::]:*

La salida contiene todos los enchufes, independientemente del estado.

Listado de sockets TCP

También puede aplicar un filtro para que solo se muestren los sockets coincidentes. Nós vamos usar o -t (TCP), por lo que solo se enumerarán los sockets TCP:

ss -a -t

Listado de sockets UDP

a -u (UDP) realiza el mismo tipo de acción de filtrado. Desta vez, solo veremos sockets UDP:

ss -a -u

State  Recv-Q Send-Q    Local Address:Port Peer   Address:Port Process 
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%isto:domínio      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         [::]:*

Listado de sockets Unix

Para ver solo sockets Unix, puede incluir el -x (Unix), como é mostrado a seguir:

ss -a -x

Netid State Recv-Q Send-Q               Local Address:Port  Peer Address:Port    Process 
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

Lista bruta de plug

O filtro de plugue bruto é o -w opção (sem processamento):

ss -a -w

Lista de plug-ins de versão de IP 4

Sockets que usam o protocolo TCP / Versão IP 4 pode ser listado usando o -4 (IPV4) opção:

ss -a -4

Lista de plug-ins de versão de IP 6

Você pode ativar o filtro correspondente da versão 6 de IP com o -6 (IPV6), Então:

ss -a -6

Lista de sockets por estado

Você pode listar os soquetes pelo estado em que estão com o state opção. Isso funciona com estados definidos, ouvindo ou fechado. Também usaremos a opção de resolução (-r), que intenta resolver las direcciones de red en nombres y los puertos en protocolos.

El siguiente comando buscará conexiones TCP establecidas y ss intentará resolver los nombres:

ss -t -r state established

Se enumeran cuatro conexiones que están en el estado establecido. O nome do host, ubuntu20-04, se ha resuelto y se muestra “ssh” ao invés de 22 para la conexión SSH en la segunda línea.

Podemos repetir esto para buscar sockets en el estado de escucha:

ss -t -r state listening

Recv-Q Send-Q Local Address:Port   Peer Address:Port Process 
0      128        localhost:5939        0.0.0.0:* 
0      4096    localhost%lo:domínio      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        [::]:*

Listado de sockets por protocolo

Puede enumerar los sockets usando un protocolo particular con el dport e sport opções, que representan los puertos de origen y destino, respectivamente.

Escribimos lo siguiente para enumerar los sockets que utilizan el protocolo HTTPS en un established Conexão (tenga en cuenta el espacio después del paréntesis de apertura y antes del cierre):

ss -a state established ‘( dport = :https or sport = :https )’

Podemos usar el nombre del protocolo o el puerto normalmente asociado con ese protocolo. El puerto predeterminado para Cobertura segura (SSH) é o porto 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 esporte = :ssh )’
ss -a ‘( dport = :22 ou esporte = :22 )’

Conforme esperado, nós obtemos os mesmos resultados.

Lista de conexões para um endereço IP específico

Com ele dst (destino), podemos listar as conexões para um endereço IP de destino específico.

Nós escrevemos o seguinte:

ss -a dst 192.168.4.25

Identificação do processo

Para ver quais processos estão usando os sockets, você pode usar a opção de processos (-p), como é mostrado a seguir (note que você deve usar sudo):

sudo ss -t -p

Endereço local Recv-Q Send-Q do estado:Port   Peer Address:Port  Process 
ESTAB 0      0       192.168.4.28:57650  54.218.19.119:https users:(("Raposa de fogo",pid=3378,fd=151)) 
ESTAB 0      0       192.168.4.28:ssh     192.168.4.25:43946 users:(("sshd",pid=4086,fd=4),("sshd",pid=3985,fd=4))

Esto nos muestra que las dos conexiones establecidas en los sockets TCP están siendo utilizadas por el demonio SSH y Firefox.

Un digno sucesor

a ss O comando fornece as mesmas informações fornecidas anteriormente por netstat, mas de uma forma mais simples e acessível. Você pode ver o página man para mais opções e dicas.

setTimeout(função(){
!função(f,b,e,v,n,t,s)
{E se(f.fbq)Retorna;n = f.fbq = função(){n.callMethod?
n.callMethod.apply(n,argumentos):n.queue.push(argumentos)};
E se(!f._fbq)f._fbq = n;n.push = n;n.loaded =!0;n.version = ’2.0′;
n.queue =[];t = b.createElement(e);t.async =!0;
t.src = v;s = b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, documento,'roteiro',
‘Https://connect.facebook.net/en_US/fbevents.js ’);
fbq('iniciar', ‘335401813750447’);
fbq('acompanhar', ‘PageView’);
},3000);

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.