GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo matar una sola conexión TCP en Linux?

Estas son algunas opciones:

  • Adjunte con gdb y llame a close() en el fd. Puede asignar desde dirección/puerto al número de inodo a través de /proc/net/tcp y desde el número de inodo a FD dentro del proceso con ls -la /proc/$pid/fd.
  • Suplantar un paquete RST. Deberá generarlo localmente y adivinar el número SEQ de alguna manera.
  • Tal vez configure una regla de iptables para generar un RST en el siguiente paquete.
  • Escribir un módulo del kernel.

No parece haber una forma bien respaldada de hacer esto. Es probable que los procesos se bloqueen si sus FD se cierran inesperadamente de todos modos.


No puede eliminar una sola conexión de un proceso.

Pero podrías bloquearlo con iptables. Por lo tanto, la conexión no puede proporcionar ni recibir datos y el cliente se ejecutará en un tiempo de espera.


En Linux kernel>=4.9 puedes usar el ss comando desde iproute2 con la tecla -K

ss -K dst client1.something dport = 49987

el kernel tiene que ser compilado con CONFIG_INET_DIAG_DESTROY opción habilitada.


Puedes matar por puerto de destino:

ss -K dport = 65987

Linux
  1. Cómo cifrar un solo sistema de archivos Linux

  2. Cómo actualizar Kernel en Linux Desktop

  3. Cómo verificar la versión del Kernel en Linux

  4. Linux:¿cómo recargar correctamente un módulo del kernel?

  5. Cómo matar procesos en ejecución en Linux

Cómo matar procesos Zombie en Linux

Cómo mover una gran cantidad de archivos en Linux

Cómo copiar una gran cantidad de archivos en Linux

Cómo MATAR un proceso en Linux

Cómo hacer ping a un número de puerto en Linux

Cómo construir el kernel de Linux desde cero