fuente
Una alternativa es el uso de la lsof
utilidad; específicamente, lsof -i 4tcp
enumerará todos los procesos con algún tipo de zócalos de red TCP IPv4 abiertos. La página de manual de lsof
le proporcionará información detallada sobre cómo usar la utilidad y cómo interpretar la salida.
Si está interesado en un puerto específico, puede usar este ejemplo:
lsof -i 4tcp:8080 -sTCP:LISTEN
Si solo desea obtener la identificación del proceso, puede ejecutar esto:
lsof -i 4tcp:8080 -sTCP:LISTEN -Fp
Uso el siguiente comando cuando quiero ver todo lo que está en un puerto específico para TCP o UDP. La -n
opción desactiva el intento de resolver las direcciones IP en nombres de dominio, y -P
desactiva el intento de averiguar el nombre de un puerto en particular. Además, ejecutar como root
le mostrará más procesos que ejecutar como usuario normal.
sudo lsof -iTCP:53 -iUDP:53 -n -P
El siguiente ejemplo de código enumera todos los servidores TCP en ejecución en su máquina OSX local:
netstat -a -Ptcp | egrep 'tcp4.*LISTEN'
tcp4 0 0 127.0.0.1.2022 *.* LISTEN 0 0
tcp4 0 0 *.3141 *.* LISTEN 0 0
LISTEN
muestra solo enchufes que escuchan conexiones. Es decir, servidores.
La primera línea muestra un servidor vinculado localhost
, alias 127.0.0.1
, puerto 2022
. Responderá a solicitudes locales, pero no a solicitudes basadas en Internet.
La segunda línea es un servidor vinculado a todas las direcciones, es decir *
, puerto 3141
. Se va a responder a las consultas de Internet.
Para enumerar los puertos utilizados por clientes y servidores, use lo siguiente:
netstat -an -Ptcp | grep tcp4
netstat
en los hosts basados en BSD no se enumera ninguna información de proceso ... que era la pregunta.Esto debería ser posible en una ventana de terminal utilizando el comando Netstat .
Y si te gusta más la GUI:
fuente