risposta-alla-domanda-sullo-sviluppo-web-bd.com

differenza tra netstat e ss in linux?

In linux, il comando netstat ci dice le informazioni dei socket attivi nel sistema.

Comprendo che netstat utilizza /proc/net/tcp per acquisire le informazioni sulla rete del sistema.

Poiché la pagina man di netstat dice che netstat è obsoleto, quindi dovremmo usare 'ss'.

NOTE
   This program is obsolete.  Replacement for netstat is ss.   Replacement
   for  netstat -r is ip route.  Replacement for netstat -i is ip -s link.
   Replacement for netstat -g is ip maddr.

Ho scoperto che ss esegue funzionalità simili ma non utilizza /proc/net/tcp per acquisire informazioni sulla rete del sistema.

Ora sono curioso di sapere come ss ottiene le informazioni sul socket di rete del sistema?

33
daehee

Li ottiene dallo spazio del kernel direttamente usando Netlink che usa il classico socket API.

19
ggiroux

ss è incluso nel pacchetto iproute2 ed è il sostituto di netstat. ss è usato per scaricare le statistiche del socket. Mostra informazioni simili a netstat. Può visualizzare più TCP e informazioni sullo stato di altri strumenti. È uno strumento nuovo, incredibilmente utile e più veloce (rispetto a netstat) per il tracciamento di connessioni TCP e socket. 

10
Mr.Cool

Controlla la fonte di ss:

https://github.com/shemminger/iproute2/blob/master/misc/ss.c

Fondamentalmente, interroga direttamente il kernel e può rispondere molto più velocemente di netstat.

6

ss è un'utility usata per investigare i socket nei sistemi Linux e Unix. Mostra informazioni simili a netstat e in grado di scaricare le statistiche del socket.

Ma netstat non può essere sostituito completamente da ss. Alcuni comandi netstat corrispondono meglio al comando ip.

$ netstat -r   replaced by  $ ip route
$ netstat -i   replaced by  $ ip -s lin
$ netstat -g   replaced by  $ ip maddr.

Direi che il comando netstat "più vecchio" può essere sostituito con entrambi i comandi ss e ip insieme.

0
prosti