Mudanças entre as edições de "Roteiro Rápido do SS - Socket Statistics"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '= Roteiro Rápido do SS - Socket Statistics = Tradicionalmente, o comando ''netstat'', distribuído pelo pacote net-tools, era utilizado para coletar estatísticas de conexões ...')
 
 
(4 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 11: Linha 11:
 
{{collapse top|SS: Exemplo 1}}
 
{{collapse top|SS: Exemplo 1}}
 
<syntaxhighlight lang=bash>
 
<syntaxhighlight lang=bash>
ahoeller@hefe:~$ ss
+
arliones.hoeller:~$ ss
 
State      Recv-Q Send-Q                                                      Local Address:Port                                                          Peer Address:Port   
 
State      Recv-Q Send-Q                                                      Local Address:Port                                                          Peer Address:Port   
 
CLOSE-WAIT 1      0                                                          150.162.62.103:40369                                                        91.189.89.144:http     
 
CLOSE-WAIT 1      0                                                          150.162.62.103:40369                                                        91.189.89.144:http     
Linha 22: Linha 22:
 
== Exemplo 2: Filtrar conexões TCP, UDP ou Unix ==
 
== Exemplo 2: Filtrar conexões TCP, UDP ou Unix ==
  
Para ver apenas  
+
Para ver apenas conexões TCP, UDP ou Unix pode-se usar as opções ''t'', ''u'' ou ''x'', como no caso apresentado abaixo. A opção ''t'' sozinha listará apenas as conexões que estão "estabelecidas" ou "conectadas", não listando as conexões no estado "ouvindo". Para listar todas, deve-se utilizar a opção ''-a'' junto com o filtro.
  
{{collapse top|SS: Exemplo 1}}
+
{{collapse top|SS: Exemplo 2}}
 
<syntaxhighlight lang=bash>
 
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ ss -t
 +
State      Recv-Q Send-Q                                    Local Address:Port                                        Peer Address:Port 
 +
CLOSE-WAIT 28    0                                          172.18.18.134:44222                                        91.189.92.10:https 
 +
CLOSE-WAIT 28    0                                          172.18.18.134:43885                                        91.189.92.10:https 
 +
ESTAB      0      0                                          172.18.18.134:47327                                      64.233.186.95:http   
 +
ESTAB      0      0                                          172.18.18.134:47329                                      64.233.186.95:http   
 +
ESTAB      0      0                                          172.18.18.134:44396                                      199.16.158.104:https 
 +
CLOSE-WAIT 28    0                                          172.18.18.134:48739                                        91.189.92.11:https 
 +
ESTAB      0      0                                          172.18.18.134:39354                                    173.194.118.216:http   
 +
ESTAB      0      0                                          172.18.18.134:60996                                      23.38.155.112:http   
 +
ESTAB      0      0                                          172.18.18.134:58321                                      200.143.247.11:http   
 +
ESTAB      0      0                                          172.18.18.134:db-lsp                                      172.18.19.233:54460 
 +
ESTAB      0      0                                          172.18.18.134:42701                                    108.160.162.103:http   
 +
...
 +
 +
 +
arliones.hoeller:~$ ss -ta
 +
State      Recv-Q Send-Q                                    Local Address:Port                                        Peer Address:Port 
 +
LISTEN    0      50                                            127.0.0.1:mysql                                                  *:*     
 +
LISTEN    0      5                                              127.0.1.1:domain                                                  *:*     
 +
LISTEN    0      128                                            127.0.0.1:ipp                                                    *:*     
 +
LISTEN    0      128                                                    *:db-lsp                                                  *:*     
 +
CLOSE-WAIT 28    0                                          172.18.18.134:44222                                        91.189.92.10:https 
 +
CLOSE-WAIT 28    0                                          172.18.18.134:43885                                        91.189.92.10:https 
 +
CLOSE-WAIT 28    0                                          172.18.18.134:48739                                        91.189.92.11:https 
 +
ESTAB      0      0                                          172.18.18.134:db-lsp                                      172.18.19.233:54460 
 +
ESTAB      0      0                                          172.18.18.134:42701                                    108.160.162.103:http   
 +
CLOSE-WAIT 28    0                                          172.18.18.134:48747                                        91.189.92.11:https 
 +
CLOSE-WAIT 28    0                                          172.18.18.134:44220                                        91.189.92.10:https 
 +
CLOSE-WAIT 28    0                                          172.18.18.134:44238                                        91.189.92.10:https 
 +
...
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
Atividade extra:
 +
* Filtre os sockets UDP e Unix (um comando para cada).
 +
 +
 +
== Exemplo 3: Mostra IP ao invés de nomes ==
 +
 +
Para gerar a saída mais rapidamente, é possível utilizar a opção ''n'' para que o ss não resolva os endereços IP, ou seja, não gere consultas DNS para cada entrada da tabela gerada. Isto também vai impedir a resolução de nomes para as portas utilizadas.
 +
 +
{{collapse top|SS: Exemplo 3}}
 +
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ ss -nt
 +
State      Recv-Q Send-Q                                      Local Address:Port                                        Peer Address:Port
 +
ESTAB      0      0                                            172.18.18.134:37858                                    173.194.118.168:443 
 +
CLOSE-WAIT 28    0                                            172.18.18.134:44222                                        91.189.92.10:443 
 +
CLOSE-WAIT 28    0                                            172.18.18.134:43885                                        91.189.92.10:443 
 +
CLOSE-WAIT 28    0                                            172.18.18.134:48739                                        91.189.92.11:443 
 +
ESTAB      0      0                                            172.18.18.134:44539                                      78.40.123.180:80   
 +
ESTAB      0      0                                            172.18.18.134:42701                                    108.160.162.103:80   
 +
...
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
 +
== Exemplo 4: Exibir apenas sockets ouvindo conexões ==
 +
 +
No comando abaixo, a opção ''l'' listará apenas os sockets que estão aguardando conexões. Por exemplo, um servidor Apache (web) abre um sockect no modo ''listen'' na porta 80, onde aguardará conexões.
 +
 +
{{collapse top|SS: Exemplo 4}}
 +
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ ss -ltn
 +
State      Recv-Q Send-Q                                      Local Address:Port                                        Peer Address:Port
 +
LISTEN    0      50                                              127.0.0.1:3306                                                    *:*   
 +
LISTEN    0      5                                                127.0.1.1:53                                                      *:*   
 +
LISTEN    0      128                                              127.0.0.1:631                                                    *:*   
 +
LISTEN    0      128                                                      *:17500                                                  *:*   
 +
LISTEN    0      128                                                    :::80                                                    :::*   
 +
LISTEN    0      128                                                    ::1:631                                                    :::*   
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
Atividade extra:
 +
* Liste os sockets UDP e Unix ouvindo por conexões (um comando para cada).
 +
 +
== Exemplo 5: Imprimir nome e PID dos processos donos dos sockets ==
 +
 +
No Unix/Linux, todo socket é propriedade de um processo. Em algumas situações pode ser interessante identificar o processo responsável, por exemplo, por manter uma das portas do computador/servidor aberta. O comando no exemplo abaixo, através da opção ''p'', lista o processo dono de cada porta ouvindo por conexões (''l'').
 +
 +
{{collapse top|SS: Exemplo 5a}}
 +
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ ss -ltp
 +
State      Recv-Q Send-Q                                    Local Address:Port                                        Peer Address:Port 
 +
LISTEN    0      50                                            127.0.0.1:mysql                                                  *:*     
 +
LISTEN    0      5                                              127.0.1.1:domain                                                  *:*     
 +
LISTEN    0      128                                            127.0.0.1:ipp                                                    *:*     
 +
LISTEN    0      128                                                    *:db-lsp                                                  *:*        users:(("dropbox",2582,35))
 +
LISTEN    0      128                                                  :::http                                                  :::*     
 +
LISTEN    0      128                                                  ::1:ipp                                                    :::*     
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
Contudo, o mapeamento entre alguns processos e seus sockets apenas está disponível para o superusuário (root). No exemplo abaixo, o mesmo comando é executado como superusuário utilizando o sudo.
 +
 +
{{collapse top|SS: Exemplo 5b}}
 +
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ sudo ss -ltp
 +
[sudo] password for arliones.hoeller:
 +
State      Recv-Q Send-Q                                    Local Address:Port                                        Peer Address:Port 
 +
LISTEN    0      50                                            127.0.0.1:mysql                                                  *:*        users:(("mysqld",1111,10))
 +
LISTEN    0      5                                              127.0.1.1:domain                                                  *:*        users:(("dnsmasq",1815,5))
 +
LISTEN    0      128                                            127.0.0.1:ipp                                                    *:*        users:(("cupsd",942,11))
 +
LISTEN    0      128                                                    *:db-lsp                                                  *:*        users:(("dropbox",2582,35))
 +
LISTEN    0      128                                                  :::http                                                  :::*        users:(("apache2",1303,4),("apache2",1302,4),("apache2",1301,4),("apache2",1300,4),("apache2",1299,4),("apache2",1287,4))
 +
LISTEN    0      128                                                  ::1:ipp                                                    :::*        users:(("cupsd",942,10))
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
== Exemplo 6: Imprimir resumo de estatísticas ==
 +
 +
A opção ''s'' imprime estatísticas do sistema, como no exemplo abaixo.
 +
 +
{{collapse top|SS: Exemplo 6}}
 +
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ ss -s
 +
Total: 780 (kernel 0)
 +
TCP:  94 (estab 20, closed 30, orphaned 0, synrecv 0, timewait 0/0), ports 0
 +
 +
Transport Total    IP        IPv6
 +
*   0        -        -       
 +
RAW   0        0        0       
 +
UDP   16        10        6       
 +
TCP   64        61        3       
 +
INET   80        71        9       
 +
FRAG   0        0        0       
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
== Exemplo 7: Mostra informação de tempo ==
 +
 +
A opção ''o'' apresenta as informações de tempo de cada conexão, como no exemplo abaixo para as conexões TCP.
 +
 +
{{collapse top|SS: Exemplo 7}}
 +
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ ss -tn -o
 +
State      Recv-Q Send-Q                                      Local Address:Port                                        Peer Address:Port
 +
CLOSE-WAIT 28    0                                            172.18.18.134:48739                                        91.189.92.11:443 
 +
ESTAB      0      0                                            172.18.18.134:44539                                      78.40.123.180:80    timer:(keepalive,43sec,0)
 +
ESTAB      0      0                                            172.18.18.134:42701                                    108.160.162.103:80   
 +
CLOSE-WAIT 28    0                                            172.18.18.134:36591                                        91.189.92.23:443 
 +
ESTAB      0      0                                            172.18.18.134:34382                                      173.194.68.16:993 
 +
...
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
== Exemplo 8: Filtrar conexões usando IPv4 ou IPv6 ==
 +
 +
Para mostrar apenas sockets IPv4 use ''-f inet'' ou ''-4''.
 +
 +
{{collapse top|SS: Exemplo 8a}}
 +
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ ss -tl -f inet
 +
State      Recv-Q Send-Q                                    Local Address:Port                                        Peer Address:Port 
 +
LISTEN    0      50                                            127.0.0.1:mysql                                                  *:*     
 +
LISTEN    0      5                                              127.0.1.1:domain                                                  *:*     
 +
LISTEN    0      128                                            127.0.0.1:ipp                                                    *:*     
 +
LISTEN    0      128                                                    *:db-lsp                                                  *:*     
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
Para mostrar apenas sockets IPv6 use ''-f inet6'' ou ''-6''.
 +
 +
{{collapse top|SS: Exemplo 8b}}
 +
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ ss -tl6
 +
State      Recv-Q Send-Q                                    Local Address:Port                                        Peer Address:Port 
 +
LISTEN    0      128                                                  :::http                                                  :::*     
 +
LISTEN    0      128                                                  ::1:ipp                                                    :::*     
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
 +
== Exemplo 9: Filtrando conexões TCP pelo estado ==
 +
 +
O comando ''ss'' permite filtrar conexões pelo seu estado, ou seja, ''established'', ''closed'', ''connected'', etc. O comando abaixo, por exemplo, mostra todas as conexões TCP que usam IPv4 e estão no estado ''established''.
 +
 +
 +
{{collapse top|SS: Exemplo 9}}
 +
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ ss -t4 state established
 +
Recv-Q Send-Q                                          Local Address:Port                                              Peer Address:Port 
 +
0      0                                              172.18.18.134:38991                                          191.191.70.105:29742 
 +
0      0                                              172.18.18.134:44539                                            78.40.123.180:http   
 +
0      0                                              172.18.18.134:42701                                          108.160.162.103:http   
 +
0      0                                              172.18.18.134:39872                                          111.221.77.159:40033 
 +
0      0                                              172.18.18.134:34382                                            173.194.68.16:imaps 
 +
0      0                                              172.18.18.134:39266                                          200.135.37.117:ldap   
 +
0      0                                              172.18.18.134:39264                                          200.135.37.117:ldap   
 +
0      0                                              172.18.18.134:55074                                            172.18.109.10:microsoft-ds
 +
0      0                                              172.18.18.134:48637                                          173.194.41.177:https 
 +
0      0                                              172.18.18.134:39982                                          200.135.37.117:ldap   
 +
0      0                                              172.18.18.134:41332                                            91.190.216.55:12350 
 +
0      0                                              172.18.18.134:44137                                            150.162.62.2:imaps 
 +
0      0                                              172.18.18.134:49030                                            74.125.29.16:imaps 
 +
0      0                                              172.18.18.134:55944                                          134.170.19.178:https 
 +
0      0                                              172.18.18.134:40947                                          200.135.37.117:ldap   
 +
0      0                                              172.18.18.134:40717                                          200.135.37.117:ldap   
 +
0      0                                              172.18.18.134:34296                                            173.194.68.16:imaps 
 +
0      0                                              172.18.18.134:37497                                            200.135.190.2:imap2 
 +
0      0                                              172.18.18.134:33714                                            173.194.68.16:imaps 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
{{collapse bottom}}
 
{{collapse bottom}}
 +
 +
 +
== Exemplo 10: Filtrando conexões pelo endereço e número da porta ==
 +
 +
O comando ''ss'' também suporta filtragem por endereço IP e porta de um socket. O exemplo abaixo apresenta todos sockets utilizando a porta do SSH como porta de origem ou destino.
 +
 +
{{collapse top|SS: Exemplo 10a}}
 +
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ ss -at '( dport = :ssh or sport = :ssh )'
 +
State      Recv-Q Send-Q                                Local Address:Port                                    Peer Address:Port 
 +
LISTEN      0      128                                              :::ssh                                              :::*     
 +
LISTEN      0      128                                              *:ssh                                                *:*     
 +
ESTAB      0      0                                      172.18.129.3:42619                                  150.162.62.97:ssh   
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
Sockets com porta destino 443 ou 80.
 +
 +
{{collapse top|SS: Exemplo 10b}}
 +
<syntaxhighlight lang=bash>
 +
arliones.hoeller:~$ ss -nt '( dst :443 or dst :80 )'
 +
State      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port
 +
ESTAB      0      0                                        172.18.129.3:56492                                63.245.216.132:443 
 +
ESTAB      0      0                                        172.18.129.3:60719                                64.233.186.189:443 
 +
CLOSE-WAIT  1      0                                        172.18.129.3:47454                                  91.189.94.25:80   
 +
ESTAB      0      0                                        172.18.129.3:38591                                173.194.118.96:443 
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
== Referências ==
 +
 +
Nos links abaixo há mais exemplos de uso do ''ss''.
 +
 +
*[http://www.cyberciti.biz/tips/linux-investigate-sockets-network-connections.html nixCraft]
 +
*[http://www.binarytides.com/linux-ss-command/ BinaryTides]

Edição atual tal como às 18h53min de 11 de agosto de 2014

Roteiro Rápido do SS - Socket Statistics

Tradicionalmente, o comando netstat, distribuído pelo pacote net-tools, era utilizado para coletar estatísticas de conexões de redes em sistemas Unix/Linux. Contudo, há algum tempo este comando vem sendo substituído pelo comando ss, integrante do pacote iproute. Este roteiro rápido sobre o ss apresenta 10 exemplos de uso do socket statistics.

O ss mostra mais informações que o netstat é é mais rápido. O netstat lê vários arquivos do /proc para coletar informações, o que o torna lento quando há muitas conexões ativas, requerendo que ele processe muitos arquivos. O ss busca suas informações diretamente no kernel, sem a necessidade de abertura de arquivos, tornando-o mais rápido. Além disso, as opções utilizadas no ss são similares ao netstat, tornado a substituição fácil.

Exemplo 1: Listando todas as conexões

O comando mais simples para isto é listar todas as conexões como no exemplo abaixo. A saída conterá detalhes de todos sockets TCP, UDP e Unix abertos no sistema.

SS: Exemplo 1
arliones.hoeller:~$ ss
State      Recv-Q Send-Q                                                       Local Address:Port                                                           Peer Address:Port   
CLOSE-WAIT 1      0                                                           150.162.62.103:40369                                                         91.189.89.144:http    
ESTAB      0      0                                                           150.162.62.103:ssh                                                           150.162.62.19:54576   
ESTAB      0      0                                                           150.162.62.103:948                                                            150.162.62.1:nfs     
ESTAB      0      48                                                          150.162.62.103:ssh                                                           150.162.62.19:54302

Exemplo 2: Filtrar conexões TCP, UDP ou Unix

Para ver apenas conexões TCP, UDP ou Unix pode-se usar as opções t, u ou x, como no caso apresentado abaixo. A opção t sozinha listará apenas as conexões que estão "estabelecidas" ou "conectadas", não listando as conexões no estado "ouvindo". Para listar todas, deve-se utilizar a opção -a junto com o filtro.

SS: Exemplo 2
arliones.hoeller:~$ ss -t
State      Recv-Q Send-Q                                     Local Address:Port                                         Peer Address:Port   
CLOSE-WAIT 28     0                                          172.18.18.134:44222                                        91.189.92.10:https   
CLOSE-WAIT 28     0                                          172.18.18.134:43885                                        91.189.92.10:https   
ESTAB      0      0                                          172.18.18.134:47327                                       64.233.186.95:http    
ESTAB      0      0                                          172.18.18.134:47329                                       64.233.186.95:http    
ESTAB      0      0                                          172.18.18.134:44396                                      199.16.158.104:https   
CLOSE-WAIT 28     0                                          172.18.18.134:48739                                        91.189.92.11:https   
ESTAB      0      0                                          172.18.18.134:39354                                     173.194.118.216:http    
ESTAB      0      0                                          172.18.18.134:60996                                       23.38.155.112:http    
ESTAB      0      0                                          172.18.18.134:58321                                      200.143.247.11:http    
ESTAB      0      0                                          172.18.18.134:db-lsp                                      172.18.19.233:54460   
ESTAB      0      0                                          172.18.18.134:42701                                     108.160.162.103:http    
...


arliones.hoeller:~$ ss -ta
State      Recv-Q Send-Q                                     Local Address:Port                                         Peer Address:Port   
LISTEN     0      50                                             127.0.0.1:mysql                                                   *:*       
LISTEN     0      5                                              127.0.1.1:domain                                                  *:*       
LISTEN     0      128                                            127.0.0.1:ipp                                                     *:*       
LISTEN     0      128                                                    *:db-lsp                                                  *:*       
CLOSE-WAIT 28     0                                          172.18.18.134:44222                                        91.189.92.10:https   
CLOSE-WAIT 28     0                                          172.18.18.134:43885                                        91.189.92.10:https   
CLOSE-WAIT 28     0                                          172.18.18.134:48739                                        91.189.92.11:https   
ESTAB      0      0                                          172.18.18.134:db-lsp                                      172.18.19.233:54460   
ESTAB      0      0                                          172.18.18.134:42701                                     108.160.162.103:http    
CLOSE-WAIT 28     0                                          172.18.18.134:48747                                        91.189.92.11:https   
CLOSE-WAIT 28     0                                          172.18.18.134:44220                                        91.189.92.10:https   
CLOSE-WAIT 28     0                                          172.18.18.134:44238                                        91.189.92.10:https   
...

Atividade extra:

  • Filtre os sockets UDP e Unix (um comando para cada).


Exemplo 3: Mostra IP ao invés de nomes

Para gerar a saída mais rapidamente, é possível utilizar a opção n para que o ss não resolva os endereços IP, ou seja, não gere consultas DNS para cada entrada da tabela gerada. Isto também vai impedir a resolução de nomes para as portas utilizadas.

SS: Exemplo 3
arliones.hoeller:~$ ss -nt
State      Recv-Q Send-Q                                       Local Address:Port                                         Peer Address:Port 
ESTAB      0      0                                            172.18.18.134:37858                                     173.194.118.168:443   
CLOSE-WAIT 28     0                                            172.18.18.134:44222                                        91.189.92.10:443   
CLOSE-WAIT 28     0                                            172.18.18.134:43885                                        91.189.92.10:443   
CLOSE-WAIT 28     0                                            172.18.18.134:48739                                        91.189.92.11:443   
ESTAB      0      0                                            172.18.18.134:44539                                       78.40.123.180:80    
ESTAB      0      0                                            172.18.18.134:42701                                     108.160.162.103:80    
...


Exemplo 4: Exibir apenas sockets ouvindo conexões

No comando abaixo, a opção l listará apenas os sockets que estão aguardando conexões. Por exemplo, um servidor Apache (web) abre um sockect no modo listen na porta 80, onde aguardará conexões.

SS: Exemplo 4
arliones.hoeller:~$ ss -ltn
State      Recv-Q Send-Q                                       Local Address:Port                                         Peer Address:Port 
LISTEN     0      50                                               127.0.0.1:3306                                                    *:*     
LISTEN     0      5                                                127.0.1.1:53                                                      *:*     
LISTEN     0      128                                              127.0.0.1:631                                                     *:*     
LISTEN     0      128                                                      *:17500                                                   *:*     
LISTEN     0      128                                                     :::80                                                     :::*     
LISTEN     0      128                                                    ::1:631                                                    :::*

Atividade extra:

  • Liste os sockets UDP e Unix ouvindo por conexões (um comando para cada).

Exemplo 5: Imprimir nome e PID dos processos donos dos sockets

No Unix/Linux, todo socket é propriedade de um processo. Em algumas situações pode ser interessante identificar o processo responsável, por exemplo, por manter uma das portas do computador/servidor aberta. O comando no exemplo abaixo, através da opção p, lista o processo dono de cada porta ouvindo por conexões (l).

SS: Exemplo 5a
arliones.hoeller:~$ ss -ltp
State      Recv-Q Send-Q                                     Local Address:Port                                         Peer Address:Port   
LISTEN     0      50                                             127.0.0.1:mysql                                                   *:*       
LISTEN     0      5                                              127.0.1.1:domain                                                  *:*       
LISTEN     0      128                                            127.0.0.1:ipp                                                     *:*       
LISTEN     0      128                                                    *:db-lsp                                                  *:*        users:(("dropbox",2582,35))
LISTEN     0      128                                                   :::http                                                   :::*       
LISTEN     0      128                                                  ::1:ipp                                                    :::*

Contudo, o mapeamento entre alguns processos e seus sockets apenas está disponível para o superusuário (root). No exemplo abaixo, o mesmo comando é executado como superusuário utilizando o sudo.

SS: Exemplo 5b
arliones.hoeller:~$ sudo ss -ltp
[sudo] password for arliones.hoeller: 
State      Recv-Q Send-Q                                     Local Address:Port                                         Peer Address:Port   
LISTEN     0      50                                             127.0.0.1:mysql                                                   *:*        users:(("mysqld",1111,10))
LISTEN     0      5                                              127.0.1.1:domain                                                  *:*        users:(("dnsmasq",1815,5))
LISTEN     0      128                                            127.0.0.1:ipp                                                     *:*        users:(("cupsd",942,11))
LISTEN     0      128                                                    *:db-lsp                                                  *:*        users:(("dropbox",2582,35))
LISTEN     0      128                                                   :::http                                                   :::*        users:(("apache2",1303,4),("apache2",1302,4),("apache2",1301,4),("apache2",1300,4),("apache2",1299,4),("apache2",1287,4))
LISTEN     0      128                                                  ::1:ipp                                                    :::*        users:(("cupsd",942,10))

Exemplo 6: Imprimir resumo de estatísticas

A opção s imprime estatísticas do sistema, como no exemplo abaixo.

SS: Exemplo 6
arliones.hoeller:~$ ss -s
Total: 780 (kernel 0)
TCP:   94 (estab 20, closed 30, orphaned 0, synrecv 0, timewait 0/0), ports 0

Transport Total     IP        IPv6
*	  0         -         -        
RAW	  0         0         0        
UDP	  16        10        6        
TCP	  64        61        3        
INET	  80        71        9        
FRAG	  0         0         0

Exemplo 7: Mostra informação de tempo

A opção o apresenta as informações de tempo de cada conexão, como no exemplo abaixo para as conexões TCP.

SS: Exemplo 7
arliones.hoeller:~$ ss -tn -o
State      Recv-Q Send-Q                                       Local Address:Port                                         Peer Address:Port 
CLOSE-WAIT 28     0                                            172.18.18.134:48739                                        91.189.92.11:443   
ESTAB      0      0                                            172.18.18.134:44539                                       78.40.123.180:80     timer:(keepalive,43sec,0)
ESTAB      0      0                                            172.18.18.134:42701                                     108.160.162.103:80    
CLOSE-WAIT 28     0                                            172.18.18.134:36591                                        91.189.92.23:443   
ESTAB      0      0                                            172.18.18.134:34382                                       173.194.68.16:993   
...

Exemplo 8: Filtrar conexões usando IPv4 ou IPv6

Para mostrar apenas sockets IPv4 use -f inet ou -4.

SS: Exemplo 8a
arliones.hoeller:~$ ss -tl -f inet
State      Recv-Q Send-Q                                     Local Address:Port                                         Peer Address:Port   
LISTEN     0      50                                             127.0.0.1:mysql                                                   *:*       
LISTEN     0      5                                              127.0.1.1:domain                                                  *:*       
LISTEN     0      128                                            127.0.0.1:ipp                                                     *:*       
LISTEN     0      128                                                    *:db-lsp                                                  *:*

Para mostrar apenas sockets IPv6 use -f inet6 ou -6.

SS: Exemplo 8b
arliones.hoeller:~$ ss -tl6
State      Recv-Q Send-Q                                     Local Address:Port                                         Peer Address:Port   
LISTEN     0      128                                                   :::http                                                   :::*       
LISTEN     0      128                                                  ::1:ipp                                                    :::*


Exemplo 9: Filtrando conexões TCP pelo estado

O comando ss permite filtrar conexões pelo seu estado, ou seja, established, closed, connected, etc. O comando abaixo, por exemplo, mostra todas as conexões TCP que usam IPv4 e estão no estado established.


SS: Exemplo 9
arliones.hoeller:~$ ss -t4 state established
Recv-Q Send-Q                                          Local Address:Port                                              Peer Address:Port   
0      0                                               172.18.18.134:38991                                           191.191.70.105:29742   
0      0                                               172.18.18.134:44539                                            78.40.123.180:http    
0      0                                               172.18.18.134:42701                                          108.160.162.103:http    
0      0                                               172.18.18.134:39872                                           111.221.77.159:40033   
0      0                                               172.18.18.134:34382                                            173.194.68.16:imaps   
0      0                                               172.18.18.134:39266                                           200.135.37.117:ldap    
0      0                                               172.18.18.134:39264                                           200.135.37.117:ldap    
0      0                                               172.18.18.134:55074                                            172.18.109.10:microsoft-ds 
0      0                                               172.18.18.134:48637                                           173.194.41.177:https   
0      0                                               172.18.18.134:39982                                           200.135.37.117:ldap    
0      0                                               172.18.18.134:41332                                            91.190.216.55:12350   
0      0                                               172.18.18.134:44137                                             150.162.62.2:imaps   
0      0                                               172.18.18.134:49030                                             74.125.29.16:imaps   
0      0                                               172.18.18.134:55944                                           134.170.19.178:https   
0      0                                               172.18.18.134:40947                                           200.135.37.117:ldap    
0      0                                               172.18.18.134:40717                                           200.135.37.117:ldap    
0      0                                               172.18.18.134:34296                                            173.194.68.16:imaps   
0      0                                               172.18.18.134:37497                                            200.135.190.2:imap2   
0      0                                               172.18.18.134:33714                                            173.194.68.16:imaps


Exemplo 10: Filtrando conexões pelo endereço e número da porta

O comando ss também suporta filtragem por endereço IP e porta de um socket. O exemplo abaixo apresenta todos sockets utilizando a porta do SSH como porta de origem ou destino.

SS: Exemplo 10a
arliones.hoeller:~$ ss -at '( dport = :ssh or sport = :ssh )'
State       Recv-Q Send-Q                                Local Address:Port                                    Peer Address:Port   
LISTEN      0      128                                              :::ssh                                               :::*       
LISTEN      0      128                                               *:ssh                                                *:*       
ESTAB       0      0                                      172.18.129.3:42619                                  150.162.62.97:ssh

Sockets com porta destino 443 ou 80.

SS: Exemplo 10b
arliones.hoeller:~$ ss -nt '( dst :443 or dst :80 )'
State       Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port 
ESTAB       0      0                                        172.18.129.3:56492                                 63.245.216.132:443   
ESTAB       0      0                                        172.18.129.3:60719                                 64.233.186.189:443   
CLOSE-WAIT  1      0                                        172.18.129.3:47454                                   91.189.94.25:80    
ESTAB       0      0                                        172.18.129.3:38591                                 173.194.118.96:443

Referências

Nos links abaixo há mais exemplos de uso do ss.