Comment utiliser la commande ss sous Linux

Contenu

Une fenêtre de terminal sur un système portable Linux.

Les ss La commande est un remplacement moderne pour le classique. netstat. Vous pouvez l'utiliser sur Linux pour obtenir des statistiques sur vos connexions réseau. Voici comment travailler avec cet outil pratique.

El commando ss contre netstat

Un remplacement pour l'obsolète netstat commander, ss vous donne des informations détaillées sur la façon dont votre ordinateur communique avec d'autres ordinateurs, réseaux et services.

ss affiche des statistiques de Protocole de contrôle de transmission (TCP), Protocole de datagramme utilisateur (UDP), Unix (interprocessus)et bouchons bruts. Plinthes brutes fonctionner dans le niveau OSI du réseau, ce qui signifie que les en-têtes TCP et UDP doivent être gérés par le logiciel d'application, pas par la couche de transport. Protocole de message de contrôle Internet (ICMP) et les sifflet l'utilitaire utilise tous les deux des sockets bruts.

Utiliser ss

Vous n'avez pas besoin d'installer ss, car il fait déjà partie d'une distribution Linux mise à jour. Cependant, votre départ peut être très long; nous avons obtenu des résultats qui contiennent plus de 630 lignes. Les résultats sont également très larges.

À cause de, nous avons inclus des représentations textuelles des résultats que nous avons obtenus, car ils ne tiendraient pas dans une capture d'écran. Nous les avons taillés pour qu'ils soient plus maniables.

Liste des connexions réseau

À l'aide de ss aucune option de ligne de commande ne répertorie les sockets qui n'écoutent pas. C'est-à-dire, répertorie les sockets qui ne sont pas en état d'écoute.

Pour voir ça, écris ce qui suit:

ss

Adresse locale Netid State Recv-Q Send-Q:Adresse de l’homologue de port:Port   Process
u_str ESTAB 0      0                           * 41826           * 41827
u_str ESTAB 0      0 /run/systemd/journal/stdout 35689           * 35688
u_str ESTAB 0      0                           * 35550           * 35551
...
u_str ESTAB 0      0                           * 38127           * 38128
u_str ESTAB 0      0 /run/dbus/system_bus_socket 21243           * 21242
u_str ESTAB 0      0                           * 19039           * 19040
u_str ESTAB 0      0 /run/systemd/journal/stdout 18887           * 18885 
u_str ESTAB 0      0 /run/dbus/system_bus_socket 19273           * 17306
icmp6 UNCONN 0     0                           *:ipv6-icmp       *:*
udp ESTAB 0      0         192.168.4.28%enp0s3:bootpc 192.168.4.1:bootps

les colonnes sont les suivantes:

  • Netid: Le type de prise. Dans notre exemple, nous avons des « u_str », un flux Unix, un « udp » et « icmp6 », une version de socket ICMP 6 IP. Vous pouvez trouver plus de descriptions de Types de sockets Linux dans les pages de manuel Linux.
  • État: L’état dans lequel se trouve le socket.
  • Recv-Q: Le nombre de paquets reçus.
  • Envoyer-Q: Le nombre de colis envoyés.
  • Adresse locale: Puerto: L'adresse locale et le port (ou des valeurs équivalentes pour les sockets Unix).
  • Gestion des pairs: Puerto: L'adresse et le port distants (ou des valeurs équivalentes pour les sockets Unix).

Pour les sockets UDP, la colonne “État” est généralement vide. Pour les sockets TCP, il peut s'agir de l'un des suivants:

  • ÉCOUTE: Côté serveur uniquement. Socket attend une demande de connexion.
  • PAS D'ENVOI: Uniquement côté client. Cette socket a fait une demande de connexion et attend de voir si elle est acceptée.
  • SYN-REÇU: Côté serveur uniquement. Ce socket attend une confirmation de connexion après avoir accepté une demande de connexion.
  • INSTALLÉ: Serveur et clients. Une connexion fonctionnelle a été établie entre le serveur et le client, permettant le transfert de données entre les deux.
  • FIN-ATTENDRE-1: Serveur et clients. Ce connecteur attend une demande de terminaison de connexion du connecteur distant, ou un accusé de réception d'une demande de terminaison de connexion qui a été précédemment envoyée à partir de ce connecteur.
  • FIN-ATTENDRE-2: Serveur et clients. Ce connecteur attend une demande de terminaison de connexion du connecteur distant.
  • FERMER-ATTENDRE: Serveur et client. Ce connecteur attend une demande de terminaison de connexion de l'utilisateur local.
  • FERMETURE: Serveur et clients. Ce connecteur attend un acquittement de demande de terminaison de connexion du connecteur distant.
  • DERNIÈRE RECONNAISSANCE: Serveur et client. Ce connecteur attend un acquittement de la demande de terminaison de connexion que vous avez envoyée au connecteur distant.
  • TEMPS D'ATTENTE: Serveur et clients. Ce connecteur a envoyé un accusé de réception au connecteur distant pour lui faire savoir qu’il avait reçu la demande de terminaison du connecteur distant. Vous attendez maintenant de vous assurer que l’accusé de réception a été reçu.
  • FERMÉ: Pas de connexion, donc le socket est terminé.

Liste des prises d’écoute

Pour afficher les photos d’écoute, nous ajouterons le -l (Écoute) option, Donc:

ss -l

Adresse locale Netid State Recv-Q Send-Q:Adresse de l’homologue de port:Port Process 
nl    UNCONN 0      0                             rtnl:NetworkManager/535                * 
nl UNCONN 0      0                             rtnl:évolution-addre/2987              * 
...
u_str ÉCOUTEZ 0      4096          /run/systemd/private 13349                            * 0 
u_seq ÉCOUTEZ 0      4096             /exécuter/udev/control 13376                            * 0 
u_str ÉCOUTEZ 0      4096             /tmp/. X11-unix/X0 33071                            * 0 
u_dgr de l’UNCONN 0      0      /exécuter/systemd/journal/syslog 13360                            * 0 
u_str ÉCOUTEZ 0      4096    /run/systemd/fsck.progress 13362                            * 0 
u_dgr de l’UNCONN 0      0    /exécuter/utilisateur/1000/systemd/notifier 32303                            * 0

Toutes ces prises sont déconnectées et à l’écoute. le “rtnl” signifie routage de liaison réseau, utilisé pour transférer des informations entre le noyau et les processus de l’espace utilisateur.

Liste de toutes les prises

Pour répertorier toutes les fiches, vous pouvez utiliser le -a (tout) option:

ss -a

Adresse locale Netid State Recv-Q Send-Q:Adresse de l’homologue de port:Port    Process 
nl    UNCONN 0      0                  rtnl:NetworkManager/535               * 
nl UNCONN 0      0                  rtnl:évolution-addre/2987 * 
...
u_str ÉCOUTEZ 0      100       public/showq 23222                            * 0 
u_str ÉCOUTEZ 0      100      privé/erreur 23225                            * 0 
u_str ÉCOUTEZ 0      100      privé/réessayer 23228                            * 0 
...
udp UNCONN 0      0             0.0.0.0:631                         0.0.0.0:* 
udp UNCONN 0      0             0.0.0.0:mdns                        0.0.0.0:* 
...
tcp ÉCOUTER 0      128              [::]:ssh                            [::]:* 
tcp ÉCOUTER 0      5               [::1]:ipp                            [::]:* 
tcp ÉCOUTER 0      100             [::1]:SMTP                           [::]:*

La sortie contient toutes les fiches, quel que soit l’état.

Liste des sockets TCP

vous pouvez également appliquer un filtre afin que seules les prises correspondantes soient affichées. Nous utiliserons le -t (TCP), ainsi, seuls les sockets tcp seront répertoriés:

ss -a -t

Liste des sockets UDP

Les -u (UDP) effectue le même type d’action de filtrage. Cette fois, nous ne verrons que les sockets UDP:

ss -à -u

Adresse locale State Recv-Q Send-Q:Adresse de l’homologue de port:Port Process 
UNCONN 0      0               0.0.0.0:631         0.0.0.0:* 
L’UNCONN 0      0               0.0.0.0:mdns        0.0.0.0:* 
L’UNCONN 0      0               0.0.0.0:60734       0.0.0.0:* 
L’UNCONN 0      0         127.0.0.53%ce:domaine      0.0.0.0:* 
L’ESTAB 0       0    192.168.4.28%enp0s3:bootpc 192.168.4.1:bootps 
UNCONN 0      0                   [::]:mdns          [::]:* 
L’UNCONN 0      0                   [::]:51193         [::]:*

Liste des sockets Unix

Pour afficher uniquement les sockets Unix, peut inclure le -x (Unix), comme il est montré dans ce qui suit:

ss -a -x

Adresse locale Netid State Recv-Q Send-Q:Adresse de l’homologue de port:Port    Process 
u_str ESTAB 0      0                                * 41826            * 41827 
u_str ESTAB 0      0                                * 23183            * 23184 
u_str ESTAB 28     0               @/tmp/. X11-unix/X0 52640            * 52639 
...
u_str ESTAB 0      0      /run/systemd/journal/stdout 18887            * 18885 
u_str ESTAB 0      0      /run/dbus/system_bus_socket 19273            * 17306

Liste des fiches brutes

Le filtre pour les bouchons bruts est le -w option (Cru):

ss -a -w

Liste des versions des plugs IP 4

Sockets qui utilisent le protocole TCP / Version IP 4 peut être énuméré à l’aide de l' -4 (IPV4) option:

ss -a -4

Liste des versions des plugs IP 6

vous pouvez activer le filtre de version correspondant 6 de propriété intellectuelle avec le -6 (IPV6), Donc:

ss -a -6

Liste des sockets par état

Vous pouvez répertorier les sockets par l'état dans lequel ils se trouvent avec le state option. Cela fonctionne avec des états définis, à l'écoute ou fermé. Nous utiliserons également l'option de résolution (-r), qui essaie de résoudre les adresses réseau en noms et les ports en protocoles.

La commande suivante recherchera les connexions TCP établies et ss va essayer de résoudre les noms:

ss -t -r état établi

Quatre connexions sont répertoriées qui sont dans l'état établi. Le nom d'hôte, Ubuntu20-04, a été résolu et s’affiche “ssh” au lieu de 22 pour la connexion SSH sur la deuxième ligne.

Nous pouvons répéter cela pour rechercher des prises dans l’état d’écoute:

ss -t -r état d’écoute

Adresse locale Recv-Q Send-Q:Adresse de l’homologue de port:Processus de port 
0      128        localhost:5939        0.0.0.0:* 
0      4096    localhost%lo:domaine      0.0.0.0:* 
0      128          0.0.0.0:ssh         0.0.0.0:* 
0      5          localhost:ipp         0.0.0.0:* 
0      100        localhost:SMTP        0.0.0.0:* 
0      128             [::]:ssh         [::]:* 
0      5      ip6-localhost:ipp         [::]:* 
0      100    ip6-localhost:SMTP        [::]:*

Liste des sockets par protocole

Vous pouvez énumérer des sockets à l’aide d’un protocole particulier avec le dport et sport options, représentant les ports source et de destination, respectivement.

Nous écrivons ce qui suit pour répertorier les sockets qui utilisent le protocole HTTPS dans un established connexion (notez l'espace après la parenthèse ouvrante et avant la fermeture):

ss -un état établi '( dport = :https ou sport = :https )'

On peut utiliser le nom du protocole ou le port normalement associé à ce protocole. Le port par défaut pour Couverture sûre (SSH) est le port 22.

Nous allons utiliser le nom du protocole dans une commande, puis le répéter en utilisant le numéro de port:

ss -a '( dport = :ssh ou sport = :ssh )'
ss -a '( dport = :22 ou sportif = :22 )'

Comme prévu, on obtient les mêmes résultats.

Liste des connexions à une adresse IP spécifique

Avec lui dst (destin), nous pouvons répertorier les connexions à une adresse IP de destination particulière.

Nous écrivons ce qui suit:

ss -a dst 192.168.4.25

Identification des processus

Pour voir quels processus utilisent les sockets, vous pouvez utiliser l’option de processus (-p), comme il est montré dans ce qui suit (notez que vous devez utiliser sudo):

sudo ss -t -p

Adresse locale State Recv-Q Send-Q:Adresse de l’homologue de port:Port  Process 
ESTAB 0      0       192.168.4.28:57650  54.218.19.119:Utilisateurs https:(("à présent.",pid=3378,fd=151)) 
L’ESTAB 0      0       192.168.4.28:ssh     192.168.4.25:43946 Utilisateurs:(("sshd",pid=4086,fd=4),("sshd",pid=3985,fd=4))

Cela nous montre que les deux connexions établies dans les sockets tcp sont utilisées par le démon SSH et Firefox.

Un digne successeur

Les ss La commande fournit les mêmes informations précédemment fournies par netstat, mais d'une manière plus simple et plus accessible. Tu peux voir le page de manuel pour plus d'options et de conseils.

setTimeout(fonction(){
!fonction(F,b,e,v,m,t,s)
{si(f.fbq)revenir;n=f.fbq=fonction(){n.callMethod?
n.callMethod.apply(m,arguments):n.queue.push(arguments)};
si(!f._fbq)f._fbq=n;n.push=n;n.chargé=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertAvant(t,s) } (window, document,'scénario',
'https://connect.facebook.net/en_US/fbevents.js’);
fbq('init', « 335401813750447 »);
fbq('Piste', « Page View »);
},3000);

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.