O ss
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 essa ferramenta útil.
Índice
Um substituto para o obsoleto netstat
comando , ss
fornece informações detalhadas sobre como suas comunica computador com outros computadores, redes e serviços.
ss
exibe estatísticas para TCP ( Transmission Control Protocol ), UDP ( User Datagram Protocol ), Unix (interprocesso) e sockets raw. Os soquetes brutos operam no nível OSI da rede , o que significa que os cabeçalhos TCP e UDP devem ser controlados pelo software do aplicativo, não pela camada de transporte. Mensagens ICMP ( Internet Control Message Protocol ) e o utilitário ping usam soquetes brutos.
Você não precisa instalar ss
, pois já faz parte de uma distribuição Linux atualizada. Sua saída, no entanto, pode ser muito longa – obtivemos resultados contendo mais de 630 linhas. Os resultados também são muito amplos.
Por causa disso, incluímos representações de texto dos resultados obtidos, pois não caberiam em uma captura de tela. Nós os aparamos para torná-los mais gerenciáveis.
Usar ss
sem opções de linha de comando lista os soquetes que não estão escutando. Ou seja, ele lista os soquetes que não estão no estado de escuta.
Para ver isso, digite o seguinte:
ss
Endereço local Recv-Q Send-Q do estado Netid: Endereço do par da porta: Processo da 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:
Para sockets UDP, a coluna “Estado” geralmente está em branco. Para soquetes TCP, pode ser um dos seguintes:
Para ver os soquetes de escuta, adicionaremos a -l
opção (escuta), assim:
ss -l
Endereço local Recv-Q Send-Q do estado Netid: Endereço do par da porta: Processo da porta 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 / executar / usuário / 1000 / systemd / notificar 32303 * 0
Esses soquetes estão todos desconectados e ouvindo. O “rtnl” significa roteamento de netlink, que é usado para transferir informações entre o kernel e os processos do espaço do usuário.
Para listar todos os soquetes, você pode usar a -a
opção (todos):
ss -a
Endereço local Recv-Q Send-Q do estado Netid: Endereço do par da porta: Processo da porta 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 privado / erro 23225 * 0 u_str LISTEN 0 100 privado / repetir 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.
Você também pode aplicar um filtro para que apenas os soquetes correspondentes sejam exibidos. Usaremos a -t
opção (TCP), portanto, apenas os soquetes TCP serão listados:
ss -a -t
A -u
opção (UDP) executa o mesmo tipo de ação de filtragem. Desta vez, veremos apenas soquetes UDP:
ss -a -u
Endereço local Recv-Q Send-Q do estado: Endereço do par 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: domínio 0.0.0.0:* ESTAB 0 0 192.168.4.28% enp0s3: bootpc 192.168.4.1:bootps UNCONN 0 0 [::]: mdns [::]: * DESCONEXÃO 0 0 [::]: 51193 [::]: *
Para ver apenas soquetes Unix, você pode incluir a -x
opção (Unix), conforme mostrado abaixo:
ss -a -x
Endereço local Recv-Q Send-Q do estado Netid: Endereço do par da 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
O filtro para sockets raw é a -w
opção (raw):
ss -a -w
Sockets usando o protocolo TCP / IP versão 4 podem ser listados usando a -4
opção (IPV4):
ss -a -4
Você pode ativar o filtro de IP versão 6 correspondente com a -6
opção (IPV6), assim:
ss -a -6
Você pode listar os soquetes pelo estado em que estão com a state
opção. Isso funciona com estados estabelecidos, de escuta ou fechados. Também usaremos a opção resolve ( -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
Quatro conexões são listadas que estão no estado estabelecido. O nome do host, ubuntu20-04, foi resolvido e “ssh” é mostrado em vez de 22 para a conexão SSH na segunda linha.
Podemos repetir isso para procurar soquetes no estado de escuta:
estado ss -t -r ouvindo
Endereço local Recv-Q Send-Q: Endereço do par da porta: Processo da porta 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 [::]: *
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.
Digamos o seguinte para listar os soquetes usando o protocolo HTTPS em uma established
conexão (observe o espaço após o parêntese de abertura e antes do fechamento):
ss -a 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 para Secure Shell (SSH) é a porta 22.
Usaremos o nome do protocolo em um comando e, em seguida, o repetiremos 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.
Com a dst
opção (destino), podemos listar as conexões para um endereço IP de destino específico.
Nós digitamos o seguinte:
ss -a dst 192.168.4.25
Para ver quais processos estão usando os sockets, você pode usar a opção de processos ( -p
), conforme mostrado abaixo (observe que você deve usar sudo
):
sudo ss -t -p
Endereço local Recv-Q Send-Q do estado: Endereço do par da porta: Processo da porta ESTAB 0 0 192.168.4.28:57650 54.218.19.119:https usuários: (("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.
O ss
comando fornece as mesmas informações fornecidas anteriormente netstat
, mas de forma mais simples e acessível. Você pode verificar a página do manual para obter mais opções e dicas.
Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…
Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…
A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…
A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…
O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…
Para ver suas fotos mais de perto ou para uma edição precisa , você pode…