GNU/Linux >> Tutoriels Linux >  >> Linux

Comment tuer une seule connexion TCP sous Linux ?

Voici quelques options :

  • Attachez avec gdb et appelez close() sur le fd. Vous pouvez mapper de l'addr/port au numéro d'inode via /proc/net/tcp et du numéro d'inode au FD à l'intérieur du processus avec ls -la /proc/$pid/fd.
  • Spoofez un paquet RST. Vous devrez le générer localement et deviner le numéro SEQ d'une manière ou d'une autre.
  • Peut-être configurer une règle iptables pour générer un RST sur le prochain paquet.
  • Écrire un module de noyau.

Il ne semble pas y avoir de moyen bien supporté de le faire. Il est probable que les processus se bloquent si leurs FD sont de toute façon fermés de manière inattendue.


Vous ne pouvez pas tuer une seule connexion d'un processus.

Mais vous pouvez le bloquer avec iptables. Ainsi, la connexion ne peut pas fournir ou recevoir de données et le client s'exécutera dans un délai d'attente.


Sur le noyau Linux>=4.9, vous pouvez utiliser le ss commande depuis iproute2 avec la clé -K

ss -K dst client1.something dport = 49987

le noyau doit être compilé avec CONFIG_INET_DIAG_DESTROY option activée.


Vous pouvez tuer par port de destination :

ss -K dport = 65987

Linux
  1. Comment tuer un processus zombie sous Linux

  2. Comment chiffrer un seul système de fichiers Linux

  3. Linux - Comment recharger correctement un module du noyau ?

  4. Comment tuer les processus en cours d'exécution sous Linux

  5. Comment obtenir le nombre actuel de jiffies depuis le redémarrage sous Linux ?

Comment tuer les processus Zombie sous Linux

Comment déplacer un grand nombre de fichiers sous Linux

Comment copier un grand nombre de fichiers sous Linux

Comment tuer un processus sous Linux

Comment envoyer un ping à un numéro de port sous Linux

Comment construire le noyau Linux à partir de zéro