netstat -s
imprime un grand nombre de statistiques de protocole très détaillées comme le nombre de messages de réinitialisation TCP reçus ou le nombre de messages de "demande d'écho" ICMP envoyés ou le nombre de paquets abandonnés en raison d'une route manquante.
Quand sous Linux netstat
est considéré comme obsolète de nos jours, existe-t-il une alternative?
Les statistiques fournies par ss -s
sont superficielles par rapport à celles fournies par netstat
.
netstat
est obsolète. Utilisezss
.tcpdump
permet de capturer le trafic en direct, mais ne stocke pas les statistiques d'une manièrenetstat -s
indiquée.sysctl
sortie ou le contenu de divers/proc/net/*
nœuds.Réponses:
netstat
a en effet été déconseillé par de nombreuses distributions, bien que ce soit vraiment une grande partie du package "net-tools" (y comprisifconfig
,route
etarp
) qui a été déconseillé en faveur du package "iproute2". iproute2 a évolué avec les dernières fonctionnalités de mise en réseau Linux , contrairement aux utilitaires traditionnels.L'équivalent iproute2 que vous voulez est le peu connu
nstat
, cela fournit lesnetstat -s
compteurs, bien que sous une forme légèrement différente:/proc
sont utilisés, chacun étant préfixé par sa classe ("Udp", "Tcp", "TcpExt", etc.)la troisième colonne affiche la moyenne sur une fenêtre de temps configurable si vous avez démarré un nstat en arrière-plan (
-d
mode démon), ou 0,0 sinonpar exemple,
nstat
imprime «UdpInDatagrams NNN» et non «Udp: InDatagrams», et non la version verbeuse netstat de «Udp: NNN paquets reçus».nstat
suppose également que vous voulez des nombres incrémentiels plutôt que absolus, de sorte que l'équivalent le plus prochenetstat -s
est celui/sbin/nstat -asz
où les options-a
utilisent des compteurs absolus,-s
ne conservez pas le fichier historique,-z
n'omettez pas les compteurs à valeur nulle.ss
reprend les parties "socket" denetstat
, mais pas sa fonction complète comme vous l'avez découvert. (ss
est en fait mieux quenetstat
dans de nombreux cas, deux sont spécifiques: la possibilité d'utiliser des expressions de filtre et la capacité facultative d'utiliser les modules du noyautcp_diag
etinet_diag
Linux pour accéder aux données de socket du noyau plus directement que via/proc
.)Si vous devez confirmer le mappage des noms descriptifs, la source net-tools est la référence définitive: http://sourcecodebrowser.com/net-tools/1.60/statistics_8c_source.html
Doug Vitale fournit un guide utile pour trouver les équivalents iproute2 des anciennes commandes (il est non maintenu et légèrement incomplet, il omet toute référence à
nstat
laquelle fait partie du package iproute2 depuis au moins 2004 noyau 2.6.x).net-tools persiste cependant et vous devriez pouvoir trouver un package pour votre distribution (ou le compiler vous-même).
la source
NETSTAT est considéré comme obsolète de nos jours et d'autres programmes inclus dans les outils de net comme arp, ifconfig, iptunnel, nameif
netstat
et route.La fonctionnalité fournie par plusieurs de ces utilitaires a été reproduite et améliorée dans la nouvelle suite iproute2 , principalement en utilisant sa nouvelle
ip
commande.Exemples de commandes obsolètes et de leurs remplacements:
arp => ip n (ip voisin)
ifconfig => ip a (ip addr), ip link, ip -s (ip -stats)
iptunnel => tunnel ip
iwconfig => iw
nameif => lien ip, ifrename
netstat => ss, route ip (pour netstat-r), lien ip -s (pour netstat -i), ip maddr (pour netstat-g)
La
netstat
commande lit divers fichiers / proc pour recueillir des informations. Cependant, cette approche devient faible lorsqu'il y a beaucoup de connexions à afficher. Cela le rend plus lent. Lass
commande obtient ses informations directement de l'espace noyau. Les options utilisées avec lesss
commandes sont très similaires à netstat, ce qui en fait un remplacement facile.Les statistiques fournies par
ss
sont superficielles , mais il est considéré comme la meilleure alternative ànetstat
Exemples :
obtenir toutes les connexions:
ss | less
ss -t
obtenir les connexions tcp pas en mode d'écoute (programmes serveur)ss -u
obtenir des connexions udp pas en mode d'écoutess -x
obtenir des connexions de tuyau de socket Unixss -ta
obtenir toutes les connexions TCPss -au
obtenir toutes les connexions udpss -nt
tout tcp sans nom d'hôtess -ltn
écoute tcp sans résolution d'hôtess -ltp
écoute tcp avec PID et nomss -s
imprime des statistiquesss -tn -o
connexion tcp avec l'hôte du domaine et afficher le temporisateur keepalivess -tl4
connexions ip4la source
ss -s
ne fournit pas de données quinetstat -s
fournissent. Il contient aussi la désinformation:/proc
est l'interface du noyau pour cela et qui est exactement commentss
obtient beaucoup des données:strace -e trace=file,read /sbin/ss -s
.ss -s
sont superficiels par rapport à ceux fournis par netstat» (signifie comparer ànetstat -s
). Et c'est vraiment la vérité: par exemple, à partir de ss -s, vous ne pouvez rien savoir sur les retransmissions TCP.Vous voudrez peut-être vérifier le contenu de
/proc/net/netstat
:Pas le format le plus convivial, mais vous avez l'idée.
Je ne sais pas s'il contient réellement les éléments spécifiques que vous recherchez, mais ils peuvent être disponibles ailleurs dans
/proc/net
.la source
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
contient la plupart des données et/proc/net/netstat
contient le reste. Malheureusement, vous devrez lire lastatistics.c
source net-tools pour déterminer tous les mappages de noms, bien que la plupart soient assez évidents.