ss
El comando ss muestra información sobre los sockets del sistema. Si no se dan argumentos muestra los sockets TCP que tienen una conexión establecida actualmente:
# ss
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 192.168.1.52:55228 74.125.230.0:http
ESTAB 0 0 192.168.1.52:38638 150.214.80.25:http
ESTAB 0 0 127.0.0.1:51236 127.0.0.1:42375
ESTAB 0 0 192.168.1.52:41151 78.140.184.184:http
ESTAB 0 0 127.0.0.1:42375 127.0.0.1:51236
Para ver solo los sockets TCP que están en escucha se usa la opción -l:
# ss -l
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:telnet *:*
LISTEN 0 20 ::1:smtp :::*
LISTEN 0 20 127.0.0.1:smtp *:*
LISTEN 0 50 127.0.0.1:51235 *:*
LISTEN 0 50 127.0.0.1:51236 *:*
Con -a se verán todos los sockets TCP:
# ss -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:telnet *:*
LISTEN 0 20 ::1:smtp :::*
LISTEN 0 20 127.0.0.1:smtp *:*
LISTEN 0 50 127.0.0.1:51235 *:*
LISTEN 0 50 127.0.0.1:51236 *:*
ESTAB 0 0 127.0.0.1:51236 127.0.0.1:42503
ESTAB 0 0 192.168.1.52:37362 31.170.164.234:http
TIME-WAIT 0 0 127.0.0.1:42499 127.0.0.1:51236
Otras opciones:
| -n | Muestra los puertos en forma numérica. |
| -r | Intenta convertir a nombres las direcciones IP y los puertos. |
| -e | Muestra información extra (temporizadores, inodo, uid, etc.) |
| -o | Muestra información de los temporizadores. |
| -p | Muestra el proceso que usa el socket. |
| -s | Muestra un resumen estadístico. |
| -4 | Muestro sólo sockets IPv4. |
| -6 | Muestra sólo sockets IPv6. |
| -t | Muestra sólo los sockets TCP. |
| -u | Muestra sólo los sockets UDP. |
| -s | Muestra un resumen estadístico. |
Después de las opciones de ss se puede poner un filtro más o menos complejo. La sintaxis general es la siguiente:
ss [opciones] [ FILTRO ]
donde FILTRO sigue el siguiente formato:
FILTRO := [ state ESTADO-TCP ] [ exclude ESTADO-TCP ] [ EXPRESIÓN ]
Si se especifica state los sockets deben estar en el estado especificado (ESTABLISED, LISTENING, TIME-ẂAIT, CLOSED, CLOSED-WAIT, etc.). Con exclude se excluirán los que se encuentren en el estado que acompaña a dicha cláusula. Por último, la EXPRESIÓN puede ser como sigue:
- Se pueden utilizar los operadores and (por defecto), or y not.
- { src | dst } [IP[/prefijo]][:puerto] (src o dst no pueden ir sin un valor)
# ss dst 127.0.0.0
# ss dst 127.0.0.1:42720
# ss dst 127.0.0.0/24:42720
# ss dst 127.0.0.0/24 or src 127.0.0.0/24
# ss dst 127.0.0.0/24 and src 127.0.0.0/24
En esta última orden, el operador and puede omitirse pues se usa por defecto:
# ss dst 127.0.0.0/24 src 127.0.0.0/24
- { dport | sport } { eq | neq | gt | ge | lt | le } [IP]:puerto
Con los operadores gt, ge, lt y le la dirección IP no participa, sólo el puerto.
# ss dport gt :1024
# ss dport eq :80
Ejemplos más complejos:
ss -o state established '( sport eq :http or sport eq :https ) dst 193.233.7.0/24'
ss state established sport neq :80 and sport neq :https or not dst 193.233.7.0/24
Licencia: licencia de software libre GPL