Cargando



Terminar Proceso de un Puerto Linux

Tutorial con vídeo para saber Terminar Proceso de un Puerto Linux.


oct 05 2022 09:40
Intermedio
Total de Apartados : 2

En Linux los procesos son parte del día a día del sistema ya que estos permiten que tanto las aplicaciones como cada servicio funcione de la forma que es, si un proceso falla podemos tener problemas graves pero si un proceso tiene alguna mala configuración o esta con errores temporales podemos encontramos con fallos centralizados en el sistema global o en nuestras tareas, ahora, muchos procesos están ligados a un puerto determinado para las tareas de destino y es por ello que en muchas ocasiones puede ser necesario terminar el proceso de un puerto por razones como:

 

Motivos finalizar proceso

 

  • Liberar el puerto para otro uso
  • Bloqueo de la aplicación, programa o servicio ejecutándose en ese puerto
  • Fallos en el rendimiento del sistema

 

 

Existen algunos métodos para terminar el proceso de un puerto y Solvetic te explicara dos de ellos en detalle.

 

Tutorial para saber cómo abrir el Administrador de tareas o Monitor del sistema en Windows 10.

 

Para estar al día, recuerda suscribirte a nuestro canal de YouTube!
SUSCRIBETE EN YOUTUBE

 

 


1 Terminar Proceso de un Puerto Linux con SOCAT / KILL


SOCAT es una utilidad que permite llevar a cabo transferencias de datos bidireccionales usando dos canales de datos independientes en Linux, su sintaxis de uso es la siguiente:
socat [opciones] <dirección 1|> <dirección 2>
Canales con socat
Los canales que socat puede conectar son:

 

  • Archivos
  • Pipes
  • Dispositivos (serie, pseudo-terminal)
  • Zócalos (UNIX, IP4, IP6 - crudo, UDP, TCP)
  • Zócalos SSL
  • Editor de líneas GNU
  • Programas
  • Conexiones proxy
  • Descriptores de archivos

 

Utilidades socat
Aunque no sea una utilidad tan popular nos puede ayudar en situaciones como:

 

  • Hacer un redireccionamiento de programas orientados a TCP a una línea serie
  • Usar relé IP6
  • Para que actúe como un reenviador de puertos TCP
  • Funcionar como una herramienta de cortafuegos

 

 

Opciones de uso socat
Las opciones de uso de socat en Linux son:

 

  • -V: permite ver la versión e información de funciones en la salida estándar
  • -hh: genera un listado de todos los nombres de opciones de dirección comunes
  • -d[ddd]: aumenta la verbosidad o forma de leer el resultado
  • -D: analiza descriptores de archivos antes de la ejecución
  • -ls: envía un evento a stderr
  • -lp<programa>: define el programa usado para iniciar sesión
  • -lu: hace uso de microsegundos para registrar marcas de tiempo
  • -v: crea un volcado de texto detallado del tráfico de datos
  • -lh: añade el nombre de host en el mensaje
  • -u: usa el modo unidireccional de izquierda a derecha
  • T<tiempo de espera>: es el tiempo de espera de inactividad total en segundos
  • -U modo unidireccional de derecha a izquierda)
  • -g: no marca grupos de opciones
  • -4: establece como preferencia prefiere IPv4
  • -6: establece IPv6 como preferencia

 

 

Paso 1

En este caso usaremos Ubuntu, abrimos la terminal e instalamos Socat:
sudo apt install socat

 

Paso 2

Para Fedora ejecutamos:
sudo dnf install socat
Paso 3

En Manjaro podemos ejecutar:
sudo pacman -S socat
Paso 4

Crearemos una conexión TCP a un puerto, para esto se necesitan las direcciones de origen y destino (podemos usar STDIN o STDOUT) y adicional debemos agregar el protocolo, la dirección IP y el número de puerto:
socat tcp-listen:"puerto",bind=127.0.0.1 stdout &

 

Paso 5

En este caso se ha creado una conexión entre un socket de escucha TCP usando el puerto 7889 y tomando la dirección IP de loopback de 127.0.0.1 con STDOUT, cuando se agrega El signo "&" hacemos referencia a que se ejecutara en segundo plano.

 

Creamos conexiones UDP y SCTP:

socat udp-listen:"puerto",bind=127.0.0.1 stdout &
socat sctp-listen:"puerto",bind=127.0.0.1 stdout &

 

Paso 6

Con esto se han activado estos procesos en dicho puerto, vamos a usar el comando KILL para “matar” o terminar dicho proceso, en primer lugar listamos los detalles del proceso:
lsof -i tcp:"puerto"

 

Paso 7

Tengamos presente el PID, finalizamos el proceso con la orden:
sudo kill PID
Paso 8

Ingresamos la contraseña de ser necesario:

 

 

 

Paso 9

Confirmamos que el proceso haya finalizado:
lsof -i tcp:"puerto"

 

Paso 10

Como un punto extra es posible canalizar la salida de lsof hacia awk e indicar que se haga una búsqueda de las líneas que contengan el puerto seleccionado e imprima el segundo campo de esa línea, sin mostrar el PID, en este caso ejecuta:
lsof -i tcp:puerto | awk '/puerto/{print $2}'
Paso 11

Listamos ahora el proceso de SCTP:
lsof -i sctp:"puerto"
Paso 12

Veremos el siguiente mensaje:

 

 

 

 

SCTP (Stream Control Transmission Protocol - Protocolo de transmisión de control de flujo) es un protocolo desarrollado para permitir la conexión con el fin de transmitir múltiples flujos de datos de forma simultánea entre dos puntos finales, para gestionar este protocolo haremos uso del comando ss:

ss -Sap

 

Paso 13

Los parámetros usados han sido:
  • -S (SCTP) : permite buscar sockets SCTP
  • -a (all - todos): permite buscar todos los tipos de sockets
  • -p (procesos): permite listar los detalles del proceso a través del socket
Paso 14

Ahora ejecuta lo siguiente:.

 

Con este comando se ha vinculado el resultado de ss a grep y luego se busca el número de puerto, luego se conecta la salida de grep a awk, una vez allí el parámetro -F crea una cadena de separación usando la coma "," actuando como delimitador de campo, se busca una cadena con el valor de “pid=”, y luego se imprime el segundo campo.

ss -Sap | grep "puerto" | awk -F',' '/pid=/{print $2}'

 

 

 


2 Terminar Proceso de un Puerto Linux con FUSER

 

Opciones Fuser
Fuser es un comando para identificar procesos a través de archivos o sockets desplegando los PID de los procesos vinculados, algunas de sus opciones de uso son:
  • -a: muestra todos los archivos especificados
  • -F: ignorado errores
  • -k: termina los procesos que acceden al archivo definido
  • -i: lanza una confirmación al usuario antes de eliminar el proceso
  • -m: indica el archivo en un sistema de archivos montado o un dispositivo de bloque que está montado para ser procesado
  • -n espacio: permite seleccionar un espacio de nombres diferente
  • -u: añade el nombre de usuario del propietario del proceso a cada PID

 

 

Paso 1

Abrimos la terminal y accedemos a detalles del puerto:
fuser -n tcp puerto
fuser puerto/udp

 

Paso 2

Finalizamos el proceso:
sudo fuser -k puerto/protocolo

 

Paso 3

Podemos ver en algunos casos un resultado más completo:

 

 

 

Con estas opciones es posible terminar procesos de puertos en Linux.

 

Tutorial sobre cómo usar el comando fkill para matar procesos en Ubuntu, Debian, CentOS o RedHat de Linux.


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

Hola! Si no encuentras algún tutorial en el buscador de Solvetic, Solicítalo Aquí

X