Manuels pour la ligne de commande

Man » Manuel ss en ligne - documentation en ligne détaillée pour la page de manuel ss

🌍
ss - un autre utilitaire pour examiner les sockets

SYNOPSIS

ss [options] [ FILTRE ]

DESCRIPTION

ss est utilisé pour afficher les statistiques des sockets. Il permet d'afficher des informations similaires à netstat. Il peut afficher plus d'informations TCP et d'état que d'autres outils.

OPTIONS

Lorsque aucune option n'est utilisée, ss affiche une liste des sockets ouverts non en écoute (par exemple, TCP/UNIX/UDP) qui ont établi une connexion.

-h, --help

Afficher un résumé des options.

-V, --version

Afficher les informations de version.

-H, --no-header

Supprimer la ligne d'en-tête.

-Q, --no-queues

Supprimer les colonnes d'envoi et de réception.

-O, --oneline

Afficher les données de chaque socket sur une seule ligne.

-n, --numeric

Ne pas essayer de résoudre les noms de service. Afficher les valeurs de bande passante exactes, au lieu de valeurs lisibles par l'homme.

-r, --resolve

Essayer de résoudre les adresses/ports numériques.

-a, --all

Afficher à la fois les sockets en écoute et les sockets qui ne le sont pas (pour TCP, cela signifie les connexions établies).

-l, --listening

Afficher uniquement les sockets en écoute (ceux-ci sont omis par défaut).

-B, --bound-inactive

Afficher uniquement les sockets TCP liés mais inactifs (pas en écoute, en connexion, etc.) (ceux-ci sont omis par défaut).

-o, --options

Afficher les informations de minuterie. Pour le protocole TCP, le format de sortie est :

timer:(<nom_minuterie>,<temps_expiration>,<retransmissions>)

<nom_minuterie>
le nom de la minuterie, il existe cinq types de noms de minuterie :

on : signifie l’une de ces minuteries : minuterie de retransmission TCP, minuterie de retransmission précoce TCP et minuterie de sonde de perte de queue

keepalive : minuterie keep alive TCP

timewait : minuterie de la phase timewait

persist : minuterie de sonde de fenêtre zéro

unknown : aucune des minuteries ci-dessus

<temps_expiration>
combien de temps la minuterie expirera-t-elle

<retransmissions>
combien de fois la retransmission a-t-elle eu lieu

-e, --extended

Afficher des informations détaillées sur le socket. Le format de sortie est :

uid:<numéro_uid> ino:<numéro_inode> sk:<cookie>

<numéro_uid>
l'ID d'utilisateur auquel le socket appartient

<numéro_inode>
le numéro d'inode du socket dans VFS

<cookie>
un UUID du socket

-m, --memory

Afficher l'utilisation de la mémoire du socket. Le format de sortie est :

skmem:(r<rmem_alloc>,rb<rcv_buf>,t<wmem_alloc>,tb<snd_buf>,
f<fwd_alloc>,w<wmem_queued>,o<opt_mem>,
bl<back_log>,d<sock_drop>)

<rmem_alloc>
la mémoire allouée pour la réception des paquets

<rcv_buf>
la mémoire totale qui peut être allouée pour la réception des paquets

<wmem_alloc>
la mémoire utilisée pour l'envoi des paquets (qui ont été envoyés à la couche 3)

<snd_buf>
la mémoire totale qui peut être allouée pour l'envoi des paquets

<fwd_alloc>
la mémoire allouée par le socket en tant que cache, mais pas encore utilisée pour la réception/l'envoi des paquets. Si de la mémoire est nécessaire pour envoyer/recevoir des paquets, la mémoire de ce cache sera utilisée avant d'allouer de la mémoire supplémentaire.

<wmem_queued>
La mémoire allouée pour l'envoi de paquets (qui n'ont pas encore été envoyés à la couche 3).

<opt_mem>
La mémoire utilisée pour stocker les options de socket, par exemple, la clé pour la signature TCP MD5.

<back_log>
La mémoire utilisée pour la file d'attente des sockets. Dans un contexte de processus, si le processus reçoit un paquet et qu'un nouveau paquet est reçu, il sera placé dans la file d'attente des sockets afin qu'il puisse être immédiatement reçu par le processus.

<sock_drop>
Le nombre de paquets supprimés avant qu'ils ne soient acheminés vers le socket.

-p, --processes
Affiche les processus utilisant le socket.

-T, --threads
Affiche les threads utilisant le socket. Implique -p.

-i, --info
Affiche les informations internes TCP. Les champs suivants peuvent apparaître :

ts   affiche la chaîne « ts » si l’option timestamp est activée.

sack  affiche la chaîne « sack » si l’option sack est activée.

ecn   affiche la chaîne « ecn » si l’option explicit congestion notification est activée.

ecnseen
affiche la chaîne « ecnseen » si le drapeau ecn a été trouvé dans les paquets reçus.

fastopen
affiche la chaîne « fastopen » si l’option fastopen est activée.

cong_alg
le nom de l’algorithme de contrôle de congestion, l’algorithme de contrôle de congestion par défaut est « cubic ».

wscale:<snd_wscale>:<rcv_wscale>
si l’option window scale est utilisée, ce champ affiche le facteur d’échelle d’envoi et le facteur d’échelle de réception.

rto:<icsk_rto>
valeur du délai de retransmission TCP, l’unité est en millisecondes.

backoff:<icsk_backoff>
utilisé pour la retransmission avec retour en arrière exponentiel, la valeur réelle du délai de retransmission est icsk_rto << icsk_backoff.

rtt:<rtt>/<rttvar>
rtt est le temps de trajet moyen, rttvar est l’écart type de rtt, leurs unités sont en millisecondes.

ato:<ato>
délai d’acquittement, l’unité est en millisecondes, utilisé pour le mode d’acquittement retardé.

mss:<mss>
taille maximale du segment.

cwnd:<cwnd>
taille de la fenêtre de congestion.

pmtu:<pmtu>
valeur MTU du chemin.

ssthresh:<ssthresh>
seuil de fenêtre de congestion TCP slow start.

bytes_acked:<bytes_acked>
octets acquittés.

bytes_received:<bytes_received>
octets reçus.

segs_out:<segs_out>
segments envoyés.

segs_in:<segs_in>
segments reçus.

send <send_bps>bps
débit en sortie.

lastsnd:<lastsnd>
temps écoulé depuis l’envoi du dernier paquet, l’unité est en millisecondes.

lastrcv:<lastrcv>
temps écoulé depuis la réception du dernier paquet, l’unité est en millisecondes.

lastack:<lastack>
temps écoulé depuis la réception du dernier acquittement, l’unité est en millisecondes.

pacing_rate <pacing_rate>bps/<max_pacing_rate>bps
le débit de cadence et le débit de cadence maximal.

rcv_space:<rcv_space>
une variable d’assistance pour le réglage automatique interne TCP du tampon de réception du socket.

tcp-ulp-mptcp flags:[MmBbJjecv] token:<rem_token(rem_id)/loc_token(loc_id)> seq:<sn> sfseq:<ssn> ssnoff:<off> maplen:<maplen>
Informations sur le sous-flux MPTCP.

--tos  Affiche les informations ToS et de priorité. Les champs suivants peuvent apparaître :

tos   octet Type-of-Service IPv4.

tclass  octet de classe de trafic IPv6.

class_id
ID de classe défini par le cgroup net_cls. Si la classe est zéro, cela affiche la priorité définie par SO_PRIORITY.

--cgroup
Affiche les informations du cgroup. Les champs suivants peuvent apparaître :

cgroup Chemin d'accès Cgroup v2. Ce chemin d'accès est relatif au point de montage de la hiérarchie.

--tipcinfo
Affiche les informations internes des sockets tipc.

-K, --kill
Tente de fermer de force les sockets. Cette option affiche les sockets qui sont fermés avec succès et ignore silencieusement les sockets que le noyau ne prend pas en charge pour la fermeture. Elle prend en charge les sockets IPv4 et IPv6 uniquement.

-s, --summary
Affiche des statistiques récapitulatives. Cette option n'analyse pas les listes de sockets, mais obtient des statistiques à partir de diverses sources. Elle est utile lorsque le nombre de sockets est si important que l'analyse de /proc/net/tcp devient fastidieuse.

-E, --events
Affiche en continu les sockets au fur et à mesure de leur destruction.

-Z, --context
Comme l'option -p, mais affiche également le contexte de sécurité du processus. Si l'option -T est utilisée, affiche également le contexte de sécurité du thread.

Pour les sockets netlink(7), le contexte du processus initiateur est affiché comme suit :

     Si un PID valide est présent, affiche le contexte du processus.

     Si la destination est le noyau (pid = 0), affiche le contexte initial du noyau.

     Si un identifiant unique a été alloué par le noyau ou l'utilisateur netlink, affiche le contexte comme « indisponible ». Cela indiquera généralement qu'un processus a plus d'un socket netlink actif.

-z, --contexts
Comme l'option -Z, mais affiche également le contexte du socket. Le contexte du socket est extrait de l'inode associé et n'est pas le contexte de socket réel détenu par le noyau. Les sockets sont généralement étiquetés avec le contexte du processus qui les a créés, mais le contexte affiché reflétera tout rôle de stratégie, type et/ou règle de transition appliqué, et constitue donc une référence utile.

-N NSNAME, --net=NSNAME
Bascule vers l'espace de noms réseau spécifié.

-b, --bpf
Affiche les filtres BPF classiques des sockets (seuls les administrateurs sont autorisés à obtenir ces informations).

-4, --ipv4
Affiche uniquement les sockets de la version 4 d'IP (alias de -f inet).

-6, --ipv6
Affiche uniquement les sockets de la version 6 d'IP (alias de -f inet6).

-0, --packet
Affiche les sockets PACKET (alias de -f link).

-t, --tcp
Affiche les sockets TCP.

-u, --udp
Affiche les sockets UDP.

-d, --dccp
Affiche les sockets DCCP.

-w, --raw
Affiche les sockets RAW.

-x, --unix
Affiche les sockets de domaine Unix (alias de -f unix).

-S, --sctp
Affiche les sockets SCTP.

--tipc
Affiche les sockets tipc (alias de -f tipc).

--vsock
Affiche les sockets vsock (alias de -f vsock).

--xdp
Affiche les sockets XDP (alias de -f xdp).

-M, --mptcp
Affiche les sockets MPTCP.

--inet-sockopt
Affiche les options de socket inet.

-f FAMILY, --family=FAMILY
Affiche les sockets du type FAMILY. Les familles suivantes sont actuellement prises en charge : unix, inet, inet6, link, netlink, vsock, tipc, xdp.

-A QUERY, --query=QUERY, --socket=QUERY
Liste des tables de sockets à afficher, séparées par des virgules. Les identificateurs suivants sont pris en charge : all, inet, tcp, udp, raw, unix, packet, netlink, unix\_dgram, unix\_stream, unix\_seqpacket, packet\_raw, packet\_dgram, dccp, sctp, tipc, vsock\_stream, vsock\_dgram, xdp, mptcp.
Tout élément de la liste peut être précédé d'un point d'exclamation (!) pour exclure cette table de sockets de l'affichage.

-D FILE, --diag=FILE
N'affiche rien, mais enregistre les informations brutes sur les sockets TCP dans le fichier FILE après avoir appliqué les filtres. Si FILE est -, la sortie standard est utilisée.

-F FILE, --filter=FILE
Lit les informations de filtre à partir du fichier FILE. Chaque ligne du fichier FILE est interprétée comme une seule option de ligne de commande. Si FILE est -, l'entrée standard est utilisée.

--bpf-maps
Affiche de manière lisible toutes les entrées de données locales de socket BPF pour chaque socket.

--bpf-map-id=MAP_ID
Affiche de manière lisible les entrées de données locales de socket BPF pour l'ID de mappe demandé. Peut être utilisé plusieurs fois.

FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
Veuillez consulter la documentation officielle pour plus de détails sur les filtres.

STATE-FILTER

STATE-FILTER permet de construire un ensemble arbitraire d'états à faire correspondre. Sa syntaxe est une séquence de mots-clés state et exclude suivie de l'identifiant de l'état.

Les identifiants disponibles sont :

All : tous les états TCP standard : established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, timewait, closed, close-wait, last-ack, listening et closing.

all : tous les états

connected : tous les états, à l'exception de listening et closed

synchronized : tous les états connectés, à l'exception de syn-sent

bucket : états qui sont maintenus sous forme de minisockets, c'est-à-dire time-wait et syn-recv

big : l'inverse de bucket

bound-inactive : sockets liés mais autrement inactifs (pas en écoute, en connexion, etc.)

EXPRESSION

EXPRESSION permet de filtrer en fonction de critères spécifiques. EXPRESSION est constituée d'une série de prédicats combinés par des opérateurs booléens. Les opérateurs possibles, par ordre de priorité croissante, sont : or (ou | ou ||), and (ou & ou &&) et not (ou !). Si aucun opérateur n'est présent entre deux prédicats consécutifs, un opérateur and implicite est supposé. Les sous-expressions peuvent être regroupées à l'aide de "(" et ")".

Les prédicats suivants sont pris en charge :

{dst|src} [=] HOST
Teste si la destination ou la source correspond à HOST. Voir la syntaxe de HOST pour plus de détails.

{dport|sport} [OP] [FAMILY:]:PORT
Compare le port de destination ou de source à PORT. OP peut être l'un des éléments suivants : "<", "<=", "=", "!=", ">=" et ">". Suivant les règles arithmétiques normales. FAMILY et PORT sont décrits comme dans la syntaxe de HOST ci-dessous.

dev [=|!=] DEVICE
Correspond en fonction du périphérique utilisé par la connexion. DEVICE peut être soit un nom de périphérique, soit l'index de l'interface.

fwmark [=|!=] MASK
Correspond en fonction de la valeur fwmark de la connexion. Il peut s'agir d'une valeur de marque spécifique ou d'une valeur de marque suivie d'une barre oblique et d'un masque de bits indiquant quels bits utiliser dans la comparaison. Par exemple, "fwmark = 0x01/0x03" correspondrait si les deux bits les moins significatifs de la fwmark étaient 0x01.

cgroup [=|!=] PATH
Correspond si la connexion fait partie d'un cgroup au chemin donné.

autobound
Correspond si le port ou le chemin de l'adresse source a été attribué automatiquement (plutôt que spécifié explicitement).

La plupart des opérateurs ont des alias. Si aucun opérateur n'est fourni, "=" est supposé. Chacun des groupes d'opérateurs suivants est équivalent :

= == eq

!= ne neq

> gt

< lt

>= ge geq

<= le leq

! not

| || or

& && and

SYNTAXE DU HÔTE

La syntaxe générale du hôte est [FAMILLE:]ADRESSE[:PORT].

FAMILLE doit être l’une des familles prises en charge par l’option -f. Si elle n’est pas spécifiée, elle prend par défaut la
famille spécifiée avec l’option -f, et si celle-ci est également manquante, elle suppose soit inet, soit inet6.

Notez que toutes les conditions d’hôte dans l’expression doivent soit toutes être de la même famille, soit être uniquement inet et inet6. Si un autre mélange de familles est présent, les résultats seront probablement inattendus.

La forme de l’ADRESSE et du PORT dépend de la famille utilisée. « * » peut être utilisé comme caractère générique pour l’adresse ou le port. Les détails pour chaque famille sont les suivants :

unix ADRESSE est un modèle glob (voir fnmatch(3)) qui sera mis en correspondance (sans tenir compte de la casse) avec
l’adresse du socket Unix. Les noms de chemin et les noms abstraits sont pris en charge. Les adresses Unix ne prennent pas en charge un port, et « \* » ne peut pas être utilisé comme caractère générique.

link ADRESSE est le nom (sans tenir compte de la casse) d’un protocole Ethernet à mettre en correspondance. PORT est soit un
nom de périphérique, soit un index de périphérique pour le périphérique de liaison souhaité, tel qu’il apparaît dans la sortie de
ip link.

netlink
ADRESSE est un descripteur de la famille netlink. Les valeurs possibles proviennent de
/etc/iproute2/nl_protos. PORT est l’ID de port du socket, qui est généralement le même que
l’ID de processus du processus propriétaire. La valeur « kernel » peut être utilisée pour représenter le noyau (ID de port de
0).

vsock ADRESSE est un entier représentant l’adresse CID, et PORT est le port.

inet et inet6
ADRESSE est une adresse IP (soit v4, soit v6 en fonction de la famille) ou un nom d’hôte DNS qui se résout en une adresse IP de la version requise. Une adresse IPv6 doit être placée entre « [ » et « ] »
pour différencier le séparateur de port. L’adresse peut également avoir une longueur de préfixe donnée en notation CIDR (une barre oblique suivie de la longueur du préfixe en bits). PORT est soit le port de socket numérique, soit le nom du service du port à mettre en correspondance.

EXEMPLES D’UTILISATION

ss -t -a

Affiche tous les sockets TCP.

ss -t -a -Z

Affiche tous les sockets TCP avec les contextes de sécurité SELinux des processus.

ss -u -a

Affiche tous les sockets UDP.

ss -o state established '( dport = :ssh or sport = :ssh )'

Affiche toutes les connexions SSH établies.

ss -x src /tmp/.X11-unix/*

Recherche tous les processus locaux connectés au serveur X.

ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24

Affiche tous les sockets TCP dans l’état FIN-WAIT-1 pour notre serveur Apache vers le réseau 193.233.7/24 et consulte leurs minuteurs.

ss -a -A 'all,!tcp'

Affiche les sockets dans tous les états de toutes les tables de sockets, mais pas TCP.

VOIR AUSSI

ip(8), RFC 793 - https://tools.ietf.org/rfc/rfc793.txt (états TCP)

AUTEUR

ss a été écrit par Alexey Kuznetsov, <_>.

Cette page de manuel a été écrite par Michael Prokop <_> pour le projet Debian (mais peut être utilisée par d’autres).