netstat -s
imprime muchas estadísticas de protocolo muy detalladas, como la cantidad de mensajes de reinicio de TCP recibidos o la cantidad de mensajes de "solicitud de eco" ICMP enviados o la cantidad de paquetes descartados debido a una ruta faltante.
Cuando en Linux netstat
se considera obsoleto en la actualidad, ¿hay alguna alternativa?
Las estadísticas proporcionadas por ss -s
son superficiales en comparación con las proporcionadas por netstat
.
netstat
es obsoleto. Usoss
.tcpdump
permite a uno capturar tráfico en vivo, pero no almacena las estadísticas de una manera que senetstat -s
muestra.sysctl
salida o el contenido de varios/proc/net/*
nodos.Respuestas:
netstat
de hecho ha quedado en desuso por muchas distribuciones, aunque es realmente la mayor parte del paquete de "net-tools" (incluyendoifconfig
,route
yarp
) que ha quedado en desuso a favor de la "iproute2" paquete. iproute2 ha evolucionado junto con las últimas funciones de red de Linux , y las utilidades tradicionales no.El equivalente de iproute2 que desea es el poco conocido
nstat
, esto proporciona losnetstat -s
contadores, aunque de forma ligeramente diferente:/proc
se utilizan los nombres de los contadores sin formato, cada uno con el prefijo de su clase ("Udp", "Tcp", "TcpExt", etc.)la tercera columna muestra el promedio durante una ventana de tiempo configurable si ha iniciado un nstat en segundo plano (
-d
modo demonio), o 0.0 si nopor ejemplo,
nstat
imprime "UdpInDatagrams NNN", no "Udp: InDatagrams", y no la versión detallada de netstat de "Udp: paquetes NNN recibidos".nstat
también supone que desea números incrementales en lugar de números absolutos, por lo que el equivalente más cercanonetstat -s
es/sbin/nstat -asz
donde las opciones son-a
usar contadores absolutos,-s
no mantener el archivo de historial,-z
no omita contadores de valor cero.ss
se hace cargo de las partes de "socket" denetstat
, pero no de su función completa como ya lo ha descubierto. (ss
En realidad es mejor quenetstat
en muchos casos, dos específicos son la capacidad de las expresiones de filtro uso y la capacidad opcional para utilizar lastcp_diag
yinet_diag
los módulos del kernel de Linux a los datos de acceso de socket del núcleo más directamente que a través de/proc
.)Si necesita confirmar la asignación de nombres descriptivos, la fuente de net-tools es la referencia definitiva: http://sourcecodebrowser.com/net-tools/1.60/statistics_8c_source.html
Doug Vitale proporciona una guía útil para encontrar los equivalentes de iproute2 de los comandos más antiguos (no se mantiene y está un poco incompleto, omite cualquier referencia a la
nstat
que ha formado parte del paquete iproute2 desde al menos 2004 kernel 2.6.x time).Sin embargo, net-tools sigue vivo , y debería poder encontrar un paquete para su distribución (o compilarlo usted mismo).
fuente
NETSTAT se considera obsoleto en la actualidad y en otros programas incluidos en las herramientas de red como arp, ifconfig, iptunnel, nameif
netstat
y route.La funcionalidad proporcionada por varias de estas utilidades se ha reproducido y mejorado en la nueva suite iproute2 , principalmente mediante el uso de su nuevo
ip
comando.Ejemplos de comandos obsoletos y sus reemplazos:
arp => ip n (vecino de ip)
ifconfig => ip a (ip addr), enlace ip, ip -s (ip -stats)
iptunnel => túnel ip
iwconfig => iw
nameif => enlace ip, ifrename
netstat => ss, ruta ip (para netstat-r), enlace ip -s (para netstat -i), ip maddr (para netstat-g)
El
netstat
comando lee varios archivos / proc para recopilar información. Sin embargo, este enfoque se debilita cuando hay muchas conexiones para mostrar. Esto lo hace más lento. Elss
comando obtiene su información directamente del espacio del kernel. Las opciones utilizadas con losss
comandos son muy similares a netstat, por lo que es un reemplazo fácil.Las estadísticas proporcionadas por
ss
son superficiales, pero se considera la mejor alternativa anetstat
Ejemplos:
obtener todas las conexiones:
ss | less
ss -t
Obtener conexiones TCP no en modo de escucha (programas de servidor)ss -u
obtener conexiones udp que no estén en modo de escuchass -x
obtener conexiones de tubería de socket unixss -ta
obtener todas las conexiones tcpss -au
obtener todas las conexiones udpss -nt
todo el TCP sin nombre de hostss -ltn
escuchando tcp sin resolución de hostss -ltp
escuchando tcp con PID y nombress -s
imprime estadísticasss -tn -o
conexión tcp con host de dominio y mostrar temporizador keepalivess -tl4
conexiones ip4fuente
ss -s
no proporciona los datos quenetstat -s
proporciona. Esto también contiene información errónea:/proc
es la interfaz del núcleo para esto y eso es exactamente cómoss
obtiene gran parte de los datos:strace -e trace=file,read /sbin/ss -s
.ss -s
son superficiales en comparación con los proporcionados por netstat" (significa comparar connetstat -s
). Y es realmente la verdad: por ejemplo, desde ss -s no se puede saber nada sobre las retransmisiones TCP.Es posible que desee verificar el contenido de
/proc/net/netstat
:No es el formato más amigable, pero entiendes la idea.
No estoy seguro de que realmente contenga los elementos específicos que está buscando, pero pueden estar disponibles en otros lugares
/proc/net
.fuente
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
contiene la mayoría de los datos y/proc/net/netstat
contiene el resto. Lamentablemente, deberá leer lastatistics.c
fuente de net-tools para determinar todas las asignaciones de nombres, aunque la mayoría son bastante obvias.