netstat -s
imprime muitas estatísticas de protocolo muito detalhadas, como o número de mensagens de redefinição de TCP recebidas ou o número de mensagens de "solicitação de eco" do ICMP enviadas ou o número de pacotes descartados devido à falta de uma rota.
Quando no Linux netstat
é considerado obsoleto hoje em dia, existe uma alternativa?
As estatísticas fornecidas por ss -s
são superficiais em comparação com as fornecidas por netstat
.
netstat
está obsoleto. Usess
.tcpdump
permite capturar o tráfego ao vivo, mas não armazena estatísticas da maneiranetstat -s
mostrada.sysctl
saída ou o conteúdo de vários/proc/net/*
nós.Respostas:
netstat
na verdade, foi substituído por muitas distribuições, mas é realmente muito do pacote "net-tools" (incluindoifconfig
,route
earp
) que foi preterido em favor do "iproute2" pacote. O iproute2 evoluiu junto com os recursos de rede mais recentes do Linux , e os utilitários tradicionais não.O equivalente a iproute2 que você deseja é pouco conhecido
nstat
, isso fornece osnetstat -s
contadores, embora de uma forma ligeiramente diferente:/proc
são usados, cada um prefixado com sua classe ("Udp", "Tcp", "TcpExt" etc.)A terceira coluna mostra a média em uma janela de tempo configurável se você iniciou um nstat em segundo plano (
-d
modo daemon) ou 0,0, se nãopor exemplo,
nstat
imprime "UdpInDatagrams NNN", não "Udp: InDatagrams" e não a versão detalhada do netstat de "Udp: NNN pacotes recebidos".nstat
também pressupõe que você deseja números incrementais em vez de absolutos; portanto, o equivalente mais próximonetstat -s
é/sbin/nstat -asz
onde as opções são-a
usar contadores absolutos,-s
não manter o arquivo histórico,-z
não omitir contadores de valor zero.ss
assume o "soquete" partes denetstat
, mas não sua função completa, como você descobriu. (ss
é realmente melhor do quenetstat
em muitos casos, dois específicos são a capacidade de usar expressões de filtro e a capacidade opcional de usar os módulos do kernel Linuxtcp_diag
einet_diag
para acessar os dados do soquete do kernel mais diretamente do que via/proc
.)Se você precisar confirmar o mapeamento para nomes descritivos, a fonte net-tools é a referência definitiva: http://sourcecodebrowser.com/net-tools/1.60/statistics_8c_source.html
Doug Vitale fornece um guia útil para encontrar os equivalentes iproute2 dos comandos mais antigos (ele é mantido e um pouco incompleto, omite qualquer referência à
nstat
qual tenha sido parte do pacote iproute2 desde pelo menos o kernel 2.6.x de 2004 ).No entanto, o net-tools permanece vivo e você deve encontrar um pacote para sua distribuição (ou compilá-lo você mesmo).
fonte
Atualmente, o NETSTAT é considerado obsoleto e outros programas incluídos nas ferramentas de rede como arp, ifconfig, iptunnel, nameif
netstat
e route.A funcionalidade fornecida por vários desses utilitários foi reproduzida e aprimorada no novo conjunto iproute2 , principalmente usando o novo
ip
comando.Exemplos de comandos obsoletos e suas substituições:
arp => ip n (vizinho de ip)
ifconfig => ip a (endereço IP), link ip, ip -s (ip -stats)
iptunnel => túnel ip
iwconfig => iw
nameif => link ip, ifrename
netstat => ss, rota ip (para netstat-r), link ip-s (para netstat -i), ip maddr (para netstat-g)
O
netstat
comando lê vários arquivos / proc para coletar informações. No entanto, essa abordagem fica fraca quando há muitas conexões a serem exibidas. Isso torna mais lento. Oss
comando obtém suas informações diretamente do espaço do kernel. As opções usadas com osss
comandos são muito semelhantes ao netstat, tornando-o uma substituição fácil.As estatísticas fornecidas por
ss
são superficiais, mas são consideradas a melhor alternativa paranetstat
Exemplos :
obtenha todas as conexões:
ss | less
ss -t
obter conexões TCP não no modo de escuta (programas de servidor)ss -u
obter conexões udp fora do modo de escutass -x
obter conexões de tubo de soquete unixss -ta
obtenha todas as conexões tcpss -au
obtenha todas as conexões udpss -nt
tudo tcp sem nome de hostss -ltn
escutando tcp sem resolução de hostss -ltp
ouvindo tcp com PID e nomess -s
imprime estatísticasss -tn -o
conexão tcp com o host do domínio e mostrar o cronômetro keepalivess -tl4
conexões ip4fonte
ss -s
não fornece dados quenetstat -s
fornecem. Este também contém informações erradas:/proc
é a interface do kernel para isso e é exatamente assim quess
obtém grande parte dos dados:strace -e trace=file,read /sbin/ss -s
.ss -s
são superficiais em comparação com os fornecidos pelo netstat" (significa comparar comnetstat -s
). E é realmente a verdade: por exemplo, dos ss -s você não sabe nada sobre retransmissões de TCP.Você pode querer verificar o conteúdo de
/proc/net/netstat
:Não é o formato mais amigável, mas você entendeu.
Não tenho certeza se ele realmente contém os itens específicos que você está procurando, mas eles podem estar disponíveis em outros lugares
/proc/net
.fonte
awk '{for(i=1;i<=NF;i++)title[i] = $i; getline; print title[1]; for(i=2;i<=NF;i++)printf " %s: %s\n", title[i], $i }' /proc/net/netstat
/proc/net/snmp
contém a maioria dos dados e/proc/net/netstat
o restante. Infelizmente, você precisará ler astatistics.c
fonte net-tools para determinar todos os mapeamentos de nomes, embora a maioria seja bastante óbvia.