Manuales para la línea de comandos

Man » Manual de ss en línea - documentación detallada en línea para la página de manual de ss

🌍
ss - otra utilidad para investigar sockets

SINOPSIS

ss [opciones] [FILTRO]

DESCRIPCIÓN

ss se utiliza para mostrar estadísticas de los sockets. Permite mostrar información similar a netstat. Puede
mostrar más información de TCP y estado que otras herramientas.

OPCIONES

Cuando no se utiliza ninguna opción, ss muestra una lista de sockets abiertos que no están en modo de escucha (por ejemplo, TCP/UNIX/UDP) que tienen una conexión establecida.

-h, --help

Mostrar un resumen de las opciones.

-V, --version

Mostrar información de la versión.

-H, --no-header

Suprimir la línea de encabezado.

-Q, --no-queues

Suprimir las columnas de cola de envío y recepción.

-O, --oneline

Imprimir los datos de cada socket en una sola línea.

-n, --numeric

No intentar resolver los nombres de los servicios. Mostrar los valores exactos de ancho de banda, en lugar de los valores fáciles de leer.

-r, --resolve

Intentar resolver las direcciones/puertos numéricos.

-a, --all

Mostrar tanto los sockets en modo de escucha como los que no lo están (para TCP, esto significa conexiones establecidas).

-l, --listening

Mostrar solo los sockets en modo de escucha (estos se omiten por defecto).

-B, --bound-inactive

Mostrar solo los sockets TCP enlazados pero inactivos (no en modo de escucha, conexión, etc.) (estos se omiten por defecto).

-o, --options

Mostrar información del temporizador. Para el protocolo TCP, el formato de salida es:

temporizador:(<nombre_temporizador>,<tiempo_expiración>,<retransmisiones>)

<nombre_temporizador>
el nombre del temporizador; existen cinco tipos de nombres de temporizador:

on: significa uno de estos temporizadores: temporizador de retransmisión TCP, temporizador de retransmisión temprana TCP y temporizador de sonda de pérdida final

keepalive: temporizador de reactivación TCP

timewait: temporizador de la etapa de espera

persist: temporizador de sonda de ventana cero

unknown: ninguno de los temporizadores anteriores

<tiempo_expiración>
cuánto tiempo tardará en expirar el temporizador

<retransmisiones>
cuántas veces se ha producido la retransmisión

-e, --extended

Mostrar información detallada del socket. El formato de salida es:

uid:<número_uid> ino:<número_inode> sk:<cookie>

<número_uid>
el ID de usuario al que pertenece el socket

<número_inode>
el número de inode del socket en VFS

<cookie>
un UUID del socket

-m, --memory

Mostrar el uso de memoria del socket. El formato de salida es:

skmem:(r<memoria_asignada_rmem>,rb<búfer_recepción>,t<memoria_asignada_wmem>,tb<búfer_envío>,
f<memoria_asignada_fwd>,w<memoria_en_cola_wmem>,o<memoria_opcional>,
bl<cola_posterior>,d<socket_drop>)

<memoria_asignada_rmem>
la memoria asignada para recibir paquetes

<búfer_recepción>
la memoria total que se puede asignar para recibir paquetes

<memoria_asignada_wmem>
la memoria utilizada para enviar paquetes (que ya se han enviado a la capa 3)

<búfer_envío>
la memoria total que se puede asignar para enviar paquetes

<memoria_asignada_fwd>
la memoria asignada por el socket como caché, pero que aún no se utiliza para recibir/enviar
paquetes. Si se necesita memoria para enviar/recibir paquetes, la memoria de esta caché se utilizará
antes de asignar memoria adicional.

<wmem_queued>

La memoria asignada para enviar paquetes (que aún no se han enviado a la capa 3)

<opt_mem>

La memoria utilizada para almacenar la opción de socket, por ejemplo, la clave para la firma TCP MD5

<back_log>

La memoria utilizada para la cola de espera del socket. En un contexto de proceso, si el proceso está recibiendo paquetes y se recibe un nuevo paquete, se colocará en la cola de espera del socket, para que el proceso pueda recibirlo inmediatamente

<sock_drop>

El número de paquetes descartados antes de que se desmultiplexen en el socket

-p, --processes

Mostrar el proceso que utiliza el socket.

-T, --threads

Mostrar el hilo que utiliza el socket. Implica -p.

-i, --info

Mostrar la información interna de TCP. Los siguientes campos pueden aparecer:

ts     Mostrar la cadena "ts" si la opción de marca de tiempo está configurada

sack   Mostrar la cadena "sack" si la opción SACK está configurada

ecn    Mostrar la cadena "ecn" si la opción de notificación de congestión explícita está configurada

ecnseen
Mostrar la cadena "ecnseen" si se encuentra la marca "saw ecn" en los paquetes recibidos

fastopen
Mostrar la cadena "fastopen" si la opción de apertura rápida está configurada

cong_alg
El nombre del algoritmo de control de congestión, el algoritmo de control de congestión predeterminado es "cubic"

wscale:<snd_wscale>:<rcv_wscale>

Si se utiliza la opción de escala de ventana, este campo muestra el factor de escala de envío y el factor de escala de recepción

rto:<icsk_rto>

El valor de tiempo de espera de retransmisión TCP, la unidad es milisegundos

backoff:<icsk_backoff>

Se utiliza para la retransmisión de retroceso exponencial, el valor real del tiempo de espera de retransmisión es icsk_rto << icsk_backoff

rtt:<rtt>/<rttvar>

rtt es el tiempo promedio de ida y vuelta, rttvar es la desviación media de rtt, sus unidades son milisegundos

ato:<ato>

Tiempo de espera de reconocimiento, unidad en milisegundos, se utiliza para el modo de reconocimiento diferido

mss:<mss>

Tamaño máximo del segmento

cwnd:<cwnd>

Tamaño de la ventana de control de congestión

pmtu:<pmtu>

Valor de la MTU de la ruta

ssthresh:<ssthresh>

Umbral de inicio lento de la ventana de control de congestión TCP

bytes_acked:<bytes_acked>

Bytes reconocidos

bytes_received:<bytes_received>

Bytes recibidos

segs_out:<segs_out>

Segmentos enviados

segs_in:<segs_in>

Segmentos recibidos

send <send_bps>bps

Bytes por segundo de salida

lastsnd:<lastsnd>

Cuánto tiempo ha pasado desde que se envió el último paquete, la unidad es milisegundos

lastrcv:<lastrcv>

Cuánto tiempo ha pasado desde que se recibió el último paquete, la unidad es milisegundos

lastack:<lastack>

Cuánto tiempo ha pasado desde que se recibió el último acuse de recibo, la unidad es milisegundos

pacing_rate <pacing_rate>bps/<max_pacing_rate>bps

La tasa de ritmo y la tasa de ritmo máxima

rcv_space:<rcv_space>

Una variable auxiliar para la sintonización automática interna del socket de búfer de recepción TCP

tcp-ulp-mptcp flags:[MmBbJjecv] token:<rem_token(rem_id)/loc_token(loc_id)> seq:<sn> sfseq:<ssn> ssnoff:<off> maplen:<maplen>

Información del subflujo MPTCP

--tos  Mostrar la información de ToS y prioridad. Los siguientes campos pueden aparecer:

tos    Byte de servicio de tipo IPv4

tclass Byte de clase de tráfico IPv6

class_id

Id. de clase establecido por el grupo de control cgroup net. Si la clase es cero, esto muestra la prioridad establecida por SO_PRIORITY.

--cgroup

Mostrar la información del grupo de control. Los siguientes campos pueden aparecer:


cgroup Ruta del cgroup v2. Esta ruta es relativa al punto de montaje de la jerarquía.

--tipcinfo

Mostrar información interna del socket tipc.

-K, --kill

Intenta cerrar los sockets por la fuerza. Esta opción muestra los sockets que se cierran con éxito y omite silenciosamente los sockets que el kernel no admite para el cierre. Solo admite sockets IPv4 e IPv6.

-s, --summary

Imprimir estadísticas resumidas. Esta opción no analiza las listas de sockets, sino que obtiene los resúmenes de varias fuentes. Es útil cuando la cantidad de sockets es tan grande que analizar /proc/net/tcp resulta complicado.

-E, --events

Mostrar continuamente los sockets a medida que se destruyen.

-Z, --context

Similar a la opción -p, pero también muestra el contexto de seguridad del proceso. Si se utiliza la opción -T, también muestra el contexto de seguridad del hilo.

Para los sockets netlink(7), el contexto del proceso iniciador se muestra de la siguiente manera:

    Si hay un PID válido, se muestra el contexto del proceso.

    Si el destino es el kernel (pid = 0), se muestra el contexto inicial del kernel.

    Si se ha asignado un identificador único por el kernel o el usuario de netlink, se muestra el contexto como "no disponible". Esto generalmente indica que un proceso tiene más de un socket netlink activo.

-z, --contexts

Similar a la opción -Z, pero también muestra el contexto del socket. El contexto del socket se toma del inodo asociado y no es el contexto real del socket que mantiene el kernel. Los sockets normalmente se etiquetan con el contexto del proceso que lo crea, sin embargo, el contexto que se muestra reflejará cualquier regla de transición de rol, tipo y/o rango de política aplicada, y por lo tanto es una referencia útil.

-N NSNAME, --net=NSNAME

Cambiar al espacio de nombres de red especificado.

-b, --bpf

Mostrar los filtros BPF clásicos del socket (solo los administradores pueden obtener esta información).

-4, --ipv4

Mostrar solo los sockets de la versión 4 de IP (alias para -f inet).

-6, --ipv6

Mostrar solo los sockets de la versión 6 de IP (alias para -f inet6).

-0, --packet

Mostrar los sockets PACKET (alias para -f link).

-t, --tcp

Mostrar los sockets TCP.

-u, --udp

Mostrar los sockets UDP.

-d, --dccp

Mostrar los sockets DCCP.

-w, --raw

Mostrar los sockets RAW.

-x, --unix

Mostrar los sockets de dominio Unix (alias para -f unix).

-S, --sctp

Mostrar los sockets SCTP.

--tipc Mostrar los sockets tipc (alias para -f tipc).

--vsock

Mostrar los sockets vsock (alias para -f vsock).

--xdp Mostrar los sockets XDP (alias para -f xdp).

-M, --mptcp

Mostrar los sockets MPTCP.

--inet-sockopt

Mostrar las opciones del socket inet.

-f FAMILY, --family=FAMILY

Mostrar los sockets del tipo FAMILY. Actualmente, se admiten las siguientes familias: unix, inet, inet6, link, netlink, vsock, tipc, xdp.

-A QUERY, --query=QUERY, --socket=QUERY

Lista de tablas de sockets para volcar, separadas por comas. Los siguientes identificadores son comprendidos: 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. Cualquier elemento de la lista puede tener opcionalmente el prefijo de un signo de exclamación (!) para excluir ese elemento de la tabla de sockets que se va a volcar.


-D FILE, --diag=FILE

No mostrar nada, simplemente volcar la información sin procesar sobre los sockets TCP en el archivo FILE después de aplicar los filtros. Si FILE es -, se utiliza stdout.

-F FILE, --filter=FILE

Leer la información del filtro desde el archivo FILE. Cada línea de FILE se interpreta como una opción de línea de comandos. Si FILE es -, se utiliza stdin.

--bpf-maps

Mostrar de forma legible todas las entradas de datos locales de socket BPF para cada socket.

--bpf-map-id=MAP_ID

Mostrar de forma legible las entradas de datos locales de socket BPF para el ID de mapa solicitado. Se puede utilizar varias veces.

FILTER := [ state STATE-FILTER ] [ EXPRESSION ]

Consulte la documentación oficial para obtener más detalles sobre los filtros.

STATE-FILTER

STATE-FILTER permite construir un conjunto arbitrario de estados para coincidir. Su sintaxis es una secuencia de palabras clave state y exclude seguidas del identificador del estado.

Los identificadores disponibles son:

All: todos los estados estándar TCP: established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, timewait, closed, close-wait, last-ack, listening y closing.

all: para todos los estados

connected: todos los estados excepto listening y closed

synchronized: todos los estados conectados excepto syn-sent

bucket: estados que se mantienen como minisockets, es decir, time-wait y syn-recv

big: el opuesto a bucket

bound-inactive: sockets enlazados pero inactivos (no en estado de escucha, conexión, etc.)

EXPRESSION

EXPRESSION permite filtrar en función de criterios específicos. EXPRESSION consta de una serie de predicados combinados por operadores booleanos. Los operadores posibles en orden creciente de precedencia son or (o | o ||), and (o & o &&) y not (o !). Si no hay ningún operador entre predicados consecutivos, se asume un operador and implícito. Las subexpresiones se pueden agrupar con "(" y ")".

Los siguientes predicados son compatibles:

{dst|src} [=] HOST

Comprueba si el destino o la fuente coincide con HOST. Consulte la sección SINTAXIS DE HOST para obtener más detalles.

{dport|sport} [OP] [FAMILY:]:PORT

Compara el puerto de destino o fuente con PORT. OP puede ser cualquiera de "<", "<=", "=", "!=", ">=" y ">". Siguiendo las reglas aritméticas normales. FAMILY y PORT se describen como en la sección SINTAXIS DE HOST.

dev [=|!=] DEVICE

Coincide en función del dispositivo que utiliza la conexión. DEVICE puede ser un nombre de dispositivo o el índice de la interfaz.

fwmark [=|!=] MASK

Coincide en función del valor fwmark de la conexión. Esto puede ser un valor de marca específico o un valor de marca seguido de una barra diagonal y una máscara de bits que indica qué bits se utilizarán en la comparación. Por ejemplo, "fwmark = 0x01/0x03" coincidiría si los dos bits menos significativos de fwmark fueran 0x01.

cgroup [=|!=] PATH

Coincide si la conexión forma parte de un cgroup en la ruta especificada.

autobound

Coincide si el puerto o la ruta de la dirección de origen se asignó automáticamente (en lugar de especificarse explícitamente).

La mayoría de los operadores tienen alias. Si no se proporciona ningún operador, se asume el operador =. Cada uno de los siguientes grupos de operadores son equivalentes:


= == eq

!= ne neq

> gt

< lt

>= ge geq

<= le leq

! not

| || or

& && and

SINTAXIS DEL HOST

La sintaxis general del host es [FAMILIA:]DIRECCIÓN[:PUERTO].

FAMILIA debe ser una de las familias soportadas por la opción -f. Si no se especifica, por defecto
se utiliza la familia dada con la opción -f, y si esta también falta, se asumirá que es inet o inet6.

Tenga en cuenta que todas las condiciones de host en la expresión deben ser todas de la misma familia o solo inet e inet6. Si hay alguna otra mezcla de familias, los resultados probablemente serán inesperados.

La forma de DIRECCIÓN y PUERTO depende de la familia utilizada. "*" se puede usar como comodín para la dirección o el puerto. Los detalles para cada familia son los siguientes:

unix   DIRECCIÓN es un patrón glob (vea fnmatch(3)) que se hará coincidir de forma que no distinga entre mayúsculas y minúsculas con
la dirección del socket unix. Se admiten tanto los nombres de ruta como los nombres abstractos. Las direcciones Unix
no admiten un puerto y no se puede usar "\*" como comodín.

link   DIRECCIÓN es el nombre (que no distingue entre mayúsculas y minúsculas) del protocolo Ethernet que se va a coincidir. PUERTO es
un nombre de dispositivo o un índice de dispositivo para el dispositivo de enlace deseado, como se ve en la salida de
ip link.

netlink
DIRECCIÓN es un descriptor de la familia netlink. Los valores posibles proceden de
/etc/iproute2/nl_protos. PUERTO es el ID de puerto del socket, que normalmente es el mismo que
el ID de proceso propietario. Se puede usar el valor "kernel" para representar el kernel (ID de puerto de
0).

vsock  DIRECCIÓN es un entero que representa la dirección CID y PUERTO es el puerto.

inet y inet6
DIRECCIÓN es una dirección IP (ya sea v4 o v6, según la familia) o un nombre de host DNS que se resuelve en una dirección IP de la versión requerida. Una dirección IPv6 debe estar encerrada entre "["
y "]" para diferenciar el separador de puerto. La dirección también puede tener un prefijo
longitud dada en notación CIDR (una barra seguida de la longitud del prefijo en bits). PUERTO es el puerto de socket numérico o el nombre del servicio para que coincida.

EJEMPLOS DE USO

ss -t -a

Mostrar todos los sockets TCP.

ss -t -a -Z

Mostrar todos los sockets TCP con contextos de seguridad SELinux del proceso.

ss -u -a

Mostrar todos los sockets UDP.

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

Mostrar todas las conexiones ssh establecidas.

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

Encontrar todos los procesos locales conectados al servidor X.

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

Enumerar todos los sockets tcp en estado FIN-WAIT-1 para nuestro servidor apache a la red 193.233.7/24 y observar sus temporizadores.

ss -a -A 'all,!tcp'

Enumerar los sockets en todos los estados de todas las tablas de sockets, pero no TCP.

VER TAMBIÉN

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

AUTOR

ss fue escrito por Alexey Kuznetsov, <_>.

Esta página de manual fue escrita por Michael Prokop <_> para el proyecto Debian (pero puede ser utilizado por otros).