Búsqueda de sitios web

Guía de uso de netstat vs ss en Linux


Bienvenido a la guía de uso de netstat vs ss en Linux, que intenta enseñarle el uso de los comandos netstat y ss mediante ejemplos. Comenzaremos esta guía definiendo qué son los comandos ss netstat , para qué se utilizan y demostraremos cómo se utilizan para el análisis de red y la resolución de problemas mediante ejemplos.

¿Qué es netstat?

Netstat es una utilidad de red de línea de comandos que se utiliza para mostrar conexiones de red para TCP/UDP, estadísticas de protocolos de red, estadísticas de interfaz, tablas de enrutamiento, conexiones enmascaradas, membresías de multidifusión, etc. El programa netstat está obsoleto y su sustituto es ss. Algunos comandos netstat han sido reemplazados por comandos ss, por ejemplo:

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

¿Qué es ss?

ss es una utilidad utilizada para investigar sockets en sistemas Linux y Unix. Muestra información similar a netstat y puede volcar estadísticas de sockets. El comando ss puede mostrar más que TCP e información de estado en comparación con otras herramientas. De forma predeterminada, ss muestra una lista de sockets abiertos que no escuchan (por ejemplo, TCP/UNIX/UDP) que han establecido una conexión.

Guía de uso de netstat vs ss en Linux con ejemplos:

En esta sección, veremos ejemplos de herramientas de línea de comandos ss y netstat utilizadas en sistemas Linux y Unix. En todas las distribuciones más recientes, estos comandos deberían estar disponibles y puede invocarlos escribiéndolos en la terminal. Si su distribución no incluye ninguna de las herramientas, consulte su documentación sobre cómo instalarlas.

El siguiente es el uso de la línea de comando del comando netstat. Luego podrá ver el uso del comando ss y hacer una comparación; luego decidirá qué herramienta funciona mejor para usted. Solo tenga en cuenta que netstat se eliminará pronto ya que está obsoleto, por lo que se recomienda aprender a usar el comando ss.

Uso de netstat:

Las opciones de línea de comando comunes utilizadas con el comando netstat son:

-l, –listening muestra los sockets del servidor de escucha
-a, –all muestra todos los sockets (predeterminado: conectado)
-r, –route mostrar tabla de enrutamiento
i, –interfaces mostrar tabla de interfaz
-g, –groups mostrar grupo de multidifusión membresías
-s, –statistics muestra estadísticas de redes (como SNMP)
-M, –masquerade muestra conexiones enmascaradas
-v, –verbose sea detallado
-W, –wide no trunca direcciones IP
-n, –numeric no resuelve nombres< br>-e, –extend muestra otra/más información
-p, –programs muestra PID/nombre de programa para sockets
-o, –timers muestra los temporizadores
-F, –fib muestra la base de información de reenvío (predeterminado)
-C, –cache muestra el caché de enrutamiento en lugar de MENTIRA

Ejemplos de uso:

Mostrar todos los enchufes (predeterminado: conectado)

Para obtener una lista de todas las conexiones activas de diferentes protocolos en su sistema, ejecute:

$ netstat -a

Enumerar todos los puertos UDP

$ netstat -au

Enumere todos los puertos TCP:

$ netstat -at

Enumere todos los puertos de escucha:

$ netstat -l

Enumere todos los puertos TCP de escucha:

$ netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State 
tcp 0 0 0.0.0.0:nfs 0.0.0.0:* LISTEN 
tcp 0 0 localhost.localdo:18083 0.0.0.0:* LISTEN 
tcp 0 0 0.0.0.0:37959 0.0.0.0:* LISTEN 
tcp 0 0 localhost.locald:mshvlm 0.0.0.0:* LISTEN 

Enumere todos los puertos udp de escucha:

Para enumerar los puertos udp de escucha, utilice la opción -lu

$ netstat -lu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State 
udp 0 0 0.0.0.0:52179 0.0.0.0:* 
udp 0 0 0.0.0.0:mountd 0.0.0.0:* 
udp 0 0 dev.jmtai.com:bootpc 0.0.0.0:* 
udp 0 0 0.0.0.0:sunrpc 0.0.0.0:* 
 ....

Mostrar tabla de enrutamiento del kernel

La opción -r se utiliza para ver la tabla de enrutamiento del kernel.

$ netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default _gateway 0.0.0.0 UG 0 0 0 tun0
default _gateway 0.0.0.0 UG 0 0 0 wlp1s0
10.10.46.0 _gateway 255.255.255.0 UG 0 0 0 tun0
10.20.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0

Vea qué proceso está escuchando en un puerto específico:

El formato es: netstat -pln | grep | awk '{imprimir $NF}'. Como ejemplo para ver qué proceso está escuchando en el puerto 22:

$ sudo netstat -pln | grep 22 | awk '{print $NF}'
7885/sshd

Para confirmar esto, verifique desde el comando ps.

$ ps aux | grep 7885
root 7885 0.0 0.0 40692 5452 ? Ss 18:54 0:00 /usr/bin/sshd -D

Mostrar solo puertos de escucha IPv4 (TCP y UDP)

Netstat de forma predeterminada le brinda una lista de puertos de escucha IPv4 e IPv6. Para obtener una lista solo de IPv4, use:

$ sudo netstat -vutlnp --listening -4
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7885/sshd 
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - 
tcp 0 0 127.0.0.1:18083 0.0.0.0:* LISTEN 429/vboxwebsrv 
tcp 0 0 0.0.0.0:37959 0.0.0.0:* LISTEN - 
tcp 0 0 127.0.0.1:6600 0.0.0.0:* LISTEN 678/mpd 
tcp 0 0 0.0.0.0:49743 0.0.0.0:* LISTEN 422/rpc.statd 
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/init 
...

Mostrar estática de red de todas las interfaces.

Las estadísticas de la interfaz se pueden ver usando la opción de comando -s.

sudo netstat -s

Para mostrar estadísticas de TCP, utilice -st, para udp, utilice -su

Mostrar pertenencia a grupos de multidifusión tanto para IPv4 como para IPv6

La multidifusión es una comunicación grupal en la que la transmisión de datos se dirige a un grupo de computadoras de destino simultáneamente. Para obtener membresía en un grupo de multidifusión, use la opción -g

sudo netstat -g
IPv6/IPv4 Group Memberships
Interface RefCnt Group
--------------- ------ ---------------------
lo 1 all-systems.mcast.net
wlp1s0 1 224.0.0.251
wlp1s0 1 all-systems.mcast.net
tun0 1 224.0.0.251
tun0 1 all-systems.mcast.net
lo 1 ff02::1
lo 1 ff01::1
wlp1s0 1 ff02::fb
wlp1s0 1 ff02::1:ff48:91f8
wlp1s0 1 ff02::1
wlp1s0 1 ff01::1
tun0 1 ff02::fb
tun0 1 ff02::1
tun0 1 ff01::1

Enumerar todos los puertos UNIX de escucha

$ sudo netstat -lx
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 21766 /tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 276493 /run/user/1000/pulse/cli
unix 2 [ ACC ] STREAM LISTENING 21789 /run/user/1000/i3/ipc-socket.644
unix 2 [ ACC ] STREAM LISTENING 49182 /tmp/qtsingleapp-HipCha-9b70-3e8
unix 2 [ ACC ] STREAM LISTENING 21765 @/tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 18468 /run/gssproxy.sock
unix 2 [ ACC ] STREAM LISTENING 2609 /run/systemd/private
unix 2 [ ACC ] STREAM LISTENING 2620 /run/rpcbind.sock
...

Buscar el puerto utilizado por un proceso en ejecución

$ sudo netstat -ap | grep ssh
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 7885/sshd 
tcp6 0 0 [::]:ssh [::]:* LISTEN 7885/sshd

Mostrar nombres de dominio siempre que sea posible para la dirección IP:

netstat -ltF

Este comando enumerará los puertos tcp de escucha pero mostrará los nombres de dominio en la salida.

Mostrar salida en modo continuo

Utilice la opción – para que la salida se muestre continuamente actualizándose cada cinco segundos.

netstat -ac 5

Si te encanta lo que hacemos, apóyanos descargando este tutorial en formato pdf desde el siguiente enlace:

uso ss:

Esta sección cubre el uso del comando ss con ejemplos. Es posible que los comandos omitan algunos de sus favoritos, así que no dude en dejar un comentario para cualquier adición. El comando ss obtiene todos sus datos del espacio de nombres del kernel, por lo que puede obtener más datos en comparación con netstat.

Las opciones comunes utilizadas con el comando ss son:

n, –numeric no resuelve nombres de servicios
-r, –resolve: resuelve nombres de hosts.
-l, –listening< muestra las tomas de escucha
-o, –options muestra información del temporizador
-e, –extended muestra información detallada de las tomas
- m, –memory muestra el uso de memoria del socket
-p, –processes muestra el proceso usando socket
s, –summary muestra el uso del socket resumen
-N, –net cambia al nombre del espacio de nombres de red especificado
-4, –ipv4 muestra solo sockets IP versión 4
-6, –ipv6 muestra solo los sockets IP versión 6
0, –packet muestra los sockets PACKET
-t, –tcp solo muestra Los sockets TCP
-S, –sctp muestran solo los sockets SCTP
-u, –udp muestran solo los sockets UDP
-w, – raw muestra solo sockets RAW
-x, –unix muestra solo sockets de dominio Unix
-f, –family=FAMILY muestra sockets de tipo FAMILIA

Ejemplos;

Listar todas las conexiones

Para enumerar todas las conexiones, simplemente ejecute el comando ss sin pasarle ninguna opción.

# ss

Mostrar todos los listados de sockets tcp, incluido el proceso correspondiente

La opción utilizada es -lt como se describe en la lista de opciones que se muestra anteriormente.

# ss -tlp

Mostrar todos los sockets que se conectan a 192.168.1.10 en el puerto 443

# ss -t dst 192.168.1.10:443

Mostrar todas las conexiones relacionadas con ssh

ss -t state established '( dport = :ssh or sport = :ssh )'
Recv-Q Send-Q Local Address:Port Peer Address:Port 
0 0 192.168.0.16:60334 192.168.20.3:ssh

Listar los puertos tcp y udp sin resolución de nombre de host

# ss -tun
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port 
tcp ESTAB 0 0 192.168.0.16:41464 216.58.223.74:443 
tcp ESTAB 0 0 192.168.0.16:57354 5.160.200.106:80 
tcp ESTAB 0 0 192.168.0.16:60334 88.198.68.148:22 
....

Proceso de impresión propietario de la conexión.

# ss -ltp
State Recv-Q Send-Q Local Address:Port Peer Address:Port 
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* users:(("sshd",pid=7885,fd=3))
LISTEN 0 64 0.0.0.0:shilp 0.0.0.0:* 
LISTEN 0 100 127.0.0.1:18083 0.0.0.0:* users:(("vboxwebsrv",pid=429,fd=9))
...

Mostrar resumen de uso de socket

Pase la opción -s  para obtener una lista de estadísticas relacionadas con sockets. -t -u se pueden usar para mostrar solo estadísticas de tcp o udp respectivamente. . El valor predeterminado mostrará ambos.

# ss -s
Total: 818 (kernel 946)
TCP: 65 (estab 42, closed 3, orphaned 4, synrecv 0, timewait 1/0), ports 0

Transport Total IP IPv6
* 946 - - 
RAW 1 0 1 
UDP 14 8 6 
TCP 62 56 6 
INET 77 64 13 
FRAG 0 0 0

Mostrar información del temporizador

La información del temporizador se puede obtener usando la opción -o.

# ss -tn -o

Mostrar solo paquetes sin procesar

Utilice la opción de comando -w ,

# ss -w
Recv-Q Send-Q Local Address:Port Peer Address:Port 
0 0 *:ipv6-icmp *:*

Este es el final de la guía de uso de netstat vs ss en Linux. Seguiremos actualizando la lista, así que síganos en Twitter y Facebook para obtener las últimas actualizaciones. Apóyenos descargando esta guía en formato pdf utilizando el enlace a continuación.

Artículos relacionados: