Cómo matar un proceso de Linux usando un número de puerto

Tecno AdictosActualizado
Cómo matar un proceso de Linux usando un número de puerto

¿Alguna vez se ha encontrado con una situación en la que necesita detener un proceso que se ejecuta en un puerto específico en su máquina Linux?

Es posible que le preocupe que una aplicación que está ejecutando se esté comportando mal o acaparando los recursos de su red o la potencia de la CPU local. Tal aplicación podría incluso ser una amenaza de seguridad que desea eliminar.

Cualquiera que sea la razón, puede utilizar el fusor, lsofy netstat comandos desde la terminal (junto con matar) para ayudarlo a encontrar y eliminar cualquier proceso de Linux usando un número de puerto. Estos comandos funcionarán en la mayoría de los sistemas operativos Linux, incluido Ubuntu.

Cómo matar un proceso de Linux usando el comando fuser

Una de las formas más fáciles de matar un proceso usando un número de puerto es usar el fusor dominio. Este comando de terminal de Linux puede enumerar o eliminar procesos que acceden a archivos o sockets. Si una aplicación se ejecuta con actividad de red (y, por lo tanto, usa un puerto abierto), probablemente esté haciendo una de estas dos cosas.

Antes de continuar, deberá asegurarse de que se siente cómodo usando un terminal de línea de comandos en su PC con Linux.

Para listar los procesos que están usando un número de puerto usando fusorpuede utilizar la siguiente sintaxis:

puerto de protocolo fuser -n

En este ejemplo, protocolo puede ser tcp o uppmientras puerto es el número de puerto que desea comprobar. Por ejemplo, para ver qué procesos utilizan el puerto TCP 80, puede ejecutar:

fusor -n tcp 80

Esto imprimirá los ID de proceso (PID) de los procesos que usan ese puerto.

Para eliminar esos procesos, puede agregar el -k opción a fusor. Esto enviará una señal SIGTERM a cada proceso, pidiéndoles que finalicen correctamente. Por ejemplo:

fusor -k -n tcp 80

Esto eliminará todos los procesos que utilicen el puerto TCP 80.

Si algunos procesos no responden a SIGTERM, puede utilizar -MATAR en lugar de -k. Esto enviará una señal de interrupción (SIGKILL), que puede ayudar a forzar la finalización inmediata de los procesos que se están ejecutando actualmente que ha identificado. Sin embargo, esto puede causar pérdida o corrupción de datos, así que utilícelo con precaución. Por ejemplo:

fusor -KILL -n tcp 80

Esto eliminará todos los procesos que utilicen el puerto TCP 80 a la fuerza. Si tiene algún problema, ejecute estos comandos como superusuario (usando el sudo comando) o usando el raíz usuario en su lugar.

Cómo matar un proceso de Linux usando el comando lsof

Otra forma de eliminar un proceso usando un número de puerto en una PC con Linux es usar el lsof dominio. Este comando puede enumerar archivos abiertos y sockets en su sistema.

Para enumerar los procesos que utilizan un número de puerto específico, puede utilizar la siguiente sintaxis:

lsof -i protocolo: puerto

Como antes, protocolo puede ser tcp o uppmientras puerto es el número de puerto que desea comprobar. Por ejemplo, para ver qué procesos utilizan el puerto TCP 53 (generalmente utilizado para solicitudes de DNS), puede ejecutar este comando:

lsof-i tcp:53

Esto imprimirá información sobre cada proceso que usa ese puerto, incluido su PID.

Para matar esos procesos, puede usar el -t opción con lsof. Esto solo imprimirá los PID de los procesos sin ninguna otra información. A continuación, puede canalizar esta salida a la matar Comando con cualquier opción de señal. Por ejemplo:

matar $(lsof -t -i tcp:53)

Esto enviará señales SIGTERM (predeterminadas) a todos los procesos que utilicen el puerto TCP 53.

Si algunos procesos no responden a las señales SIGTERM como antes, puede usar -9 en lugar de nada después matar. Esto enviará señales SIGKILL como antes, obligándolos a terminar de inmediato, pero también puede causar pérdida o corrupción de datos. Por ejemplo:

matar -9 $(lsof -t -i tcp:53)

Esto enviará a la fuerza señales SIGKILL (predeterminadas) a todos los procesos que utilicen el puerto TCP 53.

Cómo matar un proceso de Linux usando el comando netstat

También puede utilizar el netstat Comando para rastrear procesos en ejecución en su PC con Linux utilizando puertos de red activos y abiertos. netstat le permite ver las conexiones de red y las estadísticas de su sistema, lo que le permite identificar procesos problemáticos.

Para enumerar los procesos que utilizan un número de puerto junto con sus PID, debe agregar dos opciones: -pagque muestra los PID, y -lque muestra solo los sockets de escucha.

También debe especificar el protocolo (tcp, udp, etc.) y, opcionalmente, filtrar por estado (LISTEN, etc.). Por ejemplo, para ver qué procesos TCP están escuchando en cualquier puerto, puede ejecutar:

netstat -p tcp -l

Esto imprimirá información sobre cada socket TCP que escucha en cualquier puerto, incluido su PID.

Para filtrar por puertos específicos, debe agregar otra opción: -norte, que muestra direcciones numéricas en lugar de nombres. También debe especificar el formato de dirección exacto: [protocol][@hostname|hostaddr][:service|port].

Por ejemplo, para ver qué procesos TCP están escuchando en el puerto 80, puede ejecutar:

netstat -p tcp -l -n 80

Esto imprimirá información sobre cada socket TCP que escucha en el puerto 8080, incluido su PID.

Para matar esos procesos, puede usar el matar comando con cualquier opción de señal que desee y los PID que obtuvo de netstat. Por ejemplo:

matar 1234 5678

Esto enviará señales SIGTERM (predeterminadas) a procesos con PID 1234 y 5678.

Si algunos procesos no responden a las señales SIGTERM como antes, puede usar -9 en lugar de nada después matar. Esto enviará señales SIGKILL como antes, obligándolos a terminar de inmediato, pero puede causar la pérdida o corrupción de datos como antes. Por ejemplo:

matar -9 1234 5678

Esto enviará señales SIGKILL a procesos con PID 1234 y 5678 con fuerza, por ejemplo. Reemplazar 1234 con el PID correcto para su proceso en ejecución.

Controle sus aplicaciones de Linux

Gracias a los pasos descritos anteriormente, puede eliminar rápidamente un proceso de Linux en ejecución utilizando un número de puerto mediante la línea de comandos de Linux. Recuerde tener cuidado al eliminar procesos, especialmente con señales SIGKILL, ya que pueden causar efectos secundarios no deseados; después de todo, no desea causar inestabilidad en el sistema.

¿Quiere ver más de cerca el rendimiento de su sistema en Linux? Es posible que desee verificar su uso de memoria en Linux a continuación. Si le preocupa un posible riesgo de seguridad, es posible que también desee cambiar su contraseña en Linux.

¿Necesita cambiar a una nueva distribución de Linux? Si es un principiante, considere Linux Mint como una alternativa segura y estable.

¿Te gustó este artículo?

Suscribite para recibir más contenido como este.

Vas a recibir un email para confirmar la suscripción. Podés darte de baja cuando quieras.