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?
Respuestas
¿Demasiados anuncios?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.
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
.
- Ver respuestas anteriores
- Ver más respuestas