Estoy tratando de hacer que todos los procesos escuchen una conexión de red en Mac OS X. netstat
No tengo la -p
opción y estoy intentando con lsof
lsof -i -sTCP:LISTEN
me da una lista justa de procesos de escucha pero no todos. Puedo, por ejemplo, telnet al puerto 10080 donde tengo un proceso escuchando una conexión, pero esto no se muestra en la salida de lsof
. ¿Qué me estoy perdiendo?
$ telnet localhost 10080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> Connection closed.
pero
$ sudo lsof -n -i | grep 10080
$
amanda
lugar de 10080?-n
solo afecta a las direcciones y no a los puertos. Para obtener los números de puerto también tengo que usar-P
. Graciaslsof -i -sTCP:LISTEN
, y sin el-n
y tampoco reveló el 10080. Entonces tienes que usar el-P
.Respuestas:
Todos devuelven las mismas 32 entradas (
... | wc -l
) en mi Lion MBP muy usado.-P -n
evita que selsof
haga resolución de nombres y no se bloquea. Falta cualquiera de estos, puede ser muy lento.Para UDP:
sudo lsof -iUDP -P -n | egrep -v '(127|::1)'
. Sin-n
y-P
, lleva mucho tiempo.Recordatorio: esto no incluye la configuración del firewall.
fuente
-P
. Supuse erróneamente que se-n
aplicaba no solo a las direcciones IP sino también a los números de puerto.Primero descubra el Id. De proceso (pid) que ha ocupado el puerto requerido (por ejemplo, 5434):
Mata ese proceso:
fuente
ps aux
no enumera los puertos que utiliza un procesokill -9
como primera opción para deshacerse de un proceso es una elección extrema. Además, esto en realidad no responde la pregunta, que no se trata de matar cosas, sino de descubrir qué está funcionando.