He abierto el puerto #5955 a partir de una clase java para comunicarse desde un cliente. ¿Cómo puedo cerrar este puerto, después de que estoy hecho? y también que comando me puede mostrar si el puerto abierto o cerrado?

  • ¿Cómo abrir ese puerto? No está claro si usted está hablando acerca de la apertura y el cierre de los puertos en la aplicación java o desde el firewall.
InformationsquelleAutor user1667108 | 2012-09-12

11 Comentarios

  1. 337
    1. Encontrar el ID del proceso (PID), que está ocupando el número de puerto (por ejemplo, 5955) te gustaría libre

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

      sudo kill -9 PID
      
    • sudo lsof -i :5955 trabajado para mí
    • El envío de -9 no debe ser el primer intento de matar un proceso, y es un muy mal hábito. Como recuerdo, usted debe primero solo uso kill PID(lo que implica, -15), a continuación, intente -2 y -1. -9 es el último recurso sólo si todos otras opciones de no trabajar.
    • hizo matar pID sin banderas como sugerido por @Miau y esto funcionó para mí
    • sudo kill PID hizo el truco para mí
  2. 32

    Para encontrar el proceso de probar:

    sudo lsof -i :portNumber
    

    Matar el proceso que actualmente está utilizando el puerto con su PID

    kill PID
    

    y, a continuación, comprobar para ver si el puerto cerrado. Si no, trate de:

    kill -9 PID
    

    Sólo quiero hacer lo siguiente, si el anterior no funciona

    sudo kill -9 PID
    

    Sólo para estar seguro. De nuevo, dependiendo de cómo se abrió el puerto, puede que esto no importa.

  3. 23

    Sin embargo el puerto se abre, cierra de la misma manera. Por ejemplo, si usted crea un socket, vinculado al puerto 0.0.0.0:5955, y llamó a escuchar, cerca de que el mismo socket.

    También puede matar el proceso que tiene abierto el puerto.

    Si quieres averiguar qué proceso tiene un puerto abierto, intente esto:

    lsof -i :5955
    

    Si quieres saber si un puerto está abierto, usted puede hacer el mismo comando lsof (si cualquier proceso que se ha abierto es abierto; de lo contrario, no), o simplemente puede intentar conectarse a ella, por ejemplo:

    nc localhost 5955
    

    Si devuelve inmediatamente sin salida, el puerto no está abierto.

    Puede ser vale la pena mencionar que, técnicamente hablando, no es un puerto que está abierta, pero un host:puerto de combinación. Por ejemplo, si usted está conectado a una LAN como 10.0.1.2, puede enlazar un socket a 127.0.0.1:5955, o 10.0.1.2:5955, sin que uno afecte al otro, o usted podría unirse a 0.0.0.0:5955 para manejar ambos a la vez. Usted puede ver todos los de su equipo de direcciones IPv4 e IPv6 con el ifconfig comando.

  4. 16

    muy sencillo encontrar el puerto 5900:

    sudo lsof -i :5900
    

    a continuación, considerando 59553 como PID

    sudo kill 59553
    
    • Esto no añade nada a la de las respuestas!
  5. 10

    Que, en 2018, aquí es lo que ha funcionado para mí, usar MacOS HighSierra:

    sudo lsof -nPi :yourPortNumber

    a continuación:

    sudo kill -9 yourPIDnumber

    • lsof -nPi es un poco mejor porque el número de puerto es realmente visible en la salida y obtener una mejor sensación de que lo están matando.
    • También es útil sólo para ver todos los puertos de escucha’ info: sudo lsof -nPi | grep LISTEN
  6. 6

    También puede utilizar este primer comando para matar un proceso que posee un puerto en particular:

    sudo netstat -ap | grep :<port_number>
    

    Por ejemplo, decir que este proceso tiene puerto 8000 TCP, a continuación, ejecutar el comando:

    sudo netstat -ap | grep :8000
    

    de salida será de la línea que corresponde al proceso de celebración de puerto 8000, por ejemplo:

    tcp  0  0 *:8000   *:* LISTEN  4683/procHoldingPort
    

    En este caso, procHoldingPort es el nombre del proceso que se abrió el puerto, 4683 es su pid, y 8000 (tenga en cuenta que se trata de TCP) es el número de puerto que tiene (que desea cerrar).

    Luego matar el proceso, siguiendo el ejemplo anterior:

    kill  4683
    

    Como otros mencionados aquí, si eso no funciona (se puede tratar mediante matar con -9 como un argumento):

    kill -9 4683
    

    De nuevo, en general, es mejor evitar el envío de señal SIGKILL (-9) si se puede.

    Saludos,

    Chico.

  7. 5

    Yo uso lsof combinado con kill, como se mencionó anteriormente; pero escribió un rápido pequeño script en bash para automatizar este proceso.

    Con esta secuencia de comandos, usted puede simplemente escribir killport 3000 desde cualquier lugar, y va a matar a todos los procesos que se ejecutan en el puerto 3000.

    https://github.com/xtrasimplicity/killport

    • Usted salvó mi día. Por alguna razón lsof en combinación con kill no devuelven nada y de hecho mi script colgar en macOS Sierra. Pero killport funciona como un encanto y es más rápido. Gracias!
  8. 2

    He creado una función para este propósito.

    function free_port() {
        if [ -z $1 ] 
        then
            echo no Port given
        else
            PORT=$1;
            PID=$(sudo lsof -i :$PORT) # store the PID, that is using this port 
    
            if [ -z $PID ] 
            then
                echo port: $PORT is already free.
            else
                sudo kill -9 $PID # kill the process, which frees the port
                echo port: $PORT is now free.
            fi
        fi
    }
    
    free_port 80 # you need to change this port number
    

    Copy & pegar este bloque de código en su terminal debe liberar su puerto deseado. Solo tienes que cambiar el número de puerto en la última línea.

  9. 1

    Cuando el programa que se abrió el puerto de salidas, el puerto se cierra automáticamente. Si matas el proceso Java se ejecuta este servidor, que debe hacerlo.

  10. 1

    tratar a continuación, suponiendo que ejecuta el puerto es 8000:

    free-port() { kill "$(lsof -t -i :8000)"; }
    

    He encontrado la referencia aquí

  11. -2
    1. Averiguar primero la Procees id (pid), que ha ocupado el puerto necesario.(e.g 5434)

      ps aux | grep 5434

    2.matar a ese proceso de

       kill -9 <pid>
    

Dejar respuesta

Please enter your comment!
Please enter your name here