Hier sind einige Optionen:
- Mit gdb anhängen und close() auf dem fd aufrufen. Sie können innerhalb des Prozesses mit ls -la /proc/$pid/fd von addr/port auf die Inode-Nummer über /proc/net/tcp und von der Inode-Nummer auf FD abbilden.
- Spoofe ein RST-Paket. Sie müssen es lokal generieren und die SEQ-Nummer irgendwie erraten.
- Vielleicht richten Sie eine iptables-Regel ein, um eine RST für das nächste Paket zu generieren.
- Schreiben Sie ein Kernelmodul.
Es scheint keinen gut unterstützten Weg zu geben, dies zu tun. Es ist wahrscheinlich, dass Prozesse abstürzen, wenn ihre FDs sowieso unerwartet geschlossen werden.
Sie können nicht eine einzelne Verbindung eines Prozesses beenden.
Aber Sie könnten es mit iptables blockieren. Die Verbindung kann also keine Daten liefern oder empfangen und der Client läuft in einem Timeout.
Unter Linux-Kernel>=4.9 können Sie den ss
verwenden Befehl von iproute2 mit Schlüssel -K
ss -K dst client1.something dport = 49987
der Kernel muss mit CONFIG_INET_DIAG_DESTROY
kompiliert werden Option aktiviert.
Sie können nach Zielport töten:
ss -K dport = 65987