0

Убиваем зависшие FIN_WAIT2 соединения

У меня подобные проблемы возникали при работы с NFS(v4), когда удаленный сервер с шарой зависал и в результате не закрытого соединения нельзя было примонтировать шару обратно.
Перерыл кучу статей в интернете и нашел один скрипт, который написан на Perl — killcx ( http://killcx.sourceforge.net/ )

Для своей работы он требует непосредственно сам Perl и ряд библиотек:

You need the following modules to run killcx :

* Net::RawIP : needed to create spoofed packets.
* Net::Pcap : needed to capture TCP packets.
* NetPacket::Ethernet : needed to decode TCP/IP packets.

Поставил скриптец, пару раз он мне помог, но потом он писал, что не может закрыть соединения.
В итоге подкорректировал скрипт и возобновил его работу под свои нужды

исправил строку

seq => 10, syn => 1

на

seq => 10, fin => 1

пример использования

killcx 10.10.10.2:2049 eth0

eth0 — интерфейс, на котором повисло соединение
10.10.10.2 — ip удаленной машины, 2049 — порт

найти свое соединение можно с помощью команды

netstat -an

XpycT

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *