Kategorien
bash Linux Sonstiges

Quassel – Client vom Server aus trennen

Hatte am Wochenende wieder das Problem, dass ich einen Quassel-Cient (kennt ihr von hier) zuviel laufen hatte. Zwar kann Quassel dies ohne Probleme handhaben, nur markiert mir dieser Client das aktuelle Fenster immer als gelesen, so dass ich nix mitkrieg in diesem Channel. Aber wie trennt man den Client wenn man keinen Zugriff auf den Client-PC hat? Ganz einfach: Zuerst findet man raus, von welcher IP bzw. URL der Client sich konnektiert. In meinem Fall war das einfach

~ netstat --numeric-ports -W | grep 4242
tcp        0      0 meinserver.de:4242        derersteclient.de:1348 VERBUNDEN
tcp        0      0 meinserver.de:4242        derzweiteclient.de:53575 VERBUNDEN

dann nutzt man tcpkill. Das tötet einfach alles was an TCP/IP von diesem Host kommt. Find ich gut 🙂

~ tcpkill host derzweiteclient.de
tcpkill: listening on eth0 [derzweiteclient.de]
213.*.*.* - 212.*.*.*:50937: R 1398992140:1398992140(0) win 0
213.*.*.* - 212.*.*.*:50937: R 1398992260:1398992260(0) win 0
213.*.*.* - 212.*.*.*:50937: R 1398992500:1398992500(0) win 0
212.*.*.*:50937 - 213.*.*.*:22: R 2312272914:2312272914(0) win 0
212.*.*.*:50937 - 213.*.*.*:22: R 2312273916:2312273916(0) win 0
212.*.*.*:50937 - 213.*.*.*:22: R 2312275920:2312275920(0) win 0
CTRL^C

ACHTUNG: Man sollte tunlichst das nicht vom „derzweiteclient.de“-PC machen, weil man sich damit komplett aussperrt. tcpkill läuft solange bis man es abbricht, in der Regel reichen schon 3-5 Sekunden für Quassel zum disconnecten.

Man kann das optimieren mit der Port-Angabe, z.B.: tcpkill host derzweiteclient.de port 4242. Einfach mal bei tcpdump nachlesen was es alles für Optionen gibt.