221 votos

¿Cómo cierro un puerto abierto desde la terminal en Mac?

Abrí el puerto #5955 desde una clase de java para comunicarme desde un cliente. ¿Cómo cierro este puerto después de terminar? y también, ¿qué comando puede mostrarme si el puerto está abierto o cerrado?

431voto

Future2020 Puntos 1859
  1. Encuentra el ID de proceso (PID) que está ocupando el número de puerto (por ejemplo, 5955) que te gustaría liberar

    sudo lsof -i :5955
  2. Termina el proceso que actualmente está utilizando el puerto mediante su PID

    sudo kill -9 PID

56voto

oeste Puntos 482

Para encontrar el proceso prueba:

sudo lsof -i :númeroPuerto

Mata el proceso que está usando actualmente el puerto usando su PID

kill PID

y luego verifica si el puerto se cerró. Si no, prueba:

kill -9 PID

Sólo haría lo siguiente si lo anterior no funcionó

sudo kill -9 PID

Sólo para estar seguro. Otra vez, dependiendo de cómo abriste el puerto, esto podría no importar.

29voto

flik Puntos 1072

Muy simple, encuentra el puerto 5900:

sudo lsof -i :5900

Luego considerando 59553 como PID

sudo kill 59553

28voto

Gel Puntos 1465

EDITAR

En 09/2022 esto me ayudó para MacOS Monterey M1 Pro Chip:

sudo lsof -t -i tcp:tuNumeroDePuerto | sudo xargs kill

En 2018 esto es lo que funcionó para mí usando MacOS HighSierra:

sudo lsof -nPi :tuNumeroDePuerto

luego:

sudo kill -9 tuNumeroDePID

28voto

abarnert Puntos 94246

Sin embargo, como abriste el puerto, debes cerrarlo de la misma manera. Por ejemplo, si creaste un socket, lo vinculaste al puerto 0.0.0.0:5955, y llamaste a listen, cierra ese mismo socket.

También puedes simplemente matar el proceso que tiene abierto el puerto.

Si quieres saber qué proceso tiene un puerto abierto, prueba esto:

lsof -i :5955

Si quieres saber si un puerto está abierto, puedes hacer el mismo comando lsof (si algún proceso lo tiene abierto, entonces está abierto; de lo contrario, no lo está), o simplemente intenta conectarte a él, por ejemplo:

nc localhost 5955

Si retorna inmediatamente sin ninguna salida, entonces el puerto no está abierto.

Vale la pena mencionar que, técnicamente hablando, no es un puerto el que está abierto, sino una combinación host: puerto. Por ejemplo, si estás conectado a una LAN como 10.0.1.2, podrías vincular un socket a 127.0.0.1:5955, o 10.0.1.2:5955, sin que uno afecte al otro, o podrías vincularlo a 0.0.0.0:5955 para manejar ambos a la vez. Puedes ver todas las direcciones IPv4 e IPv6 de tu computadora con el comando ifconfig.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X