У меня есть порт, который заблокирован процессом, который мне нужно убить. (маленький демон telnet, который потерпел крах). Процесс был успешно завершен, но порт все еще находится в состоянии 'FIN_WAIT1'. Это не выходит из этого, время для этого, кажется, установлено в «десятилетие».
Единственный способ освободить порт - это перезагрузить всю машину, что, разумеется, я не хочу делать.
$ netstat -tulnap | grep FIN_WAIT1
tcp 0 13937 10.0.0.153:4000 10.0.2.46:2572 FIN_WAIT1 -
Кто-нибудь знает, как я могу разблокировать этот порт без перезагрузки?
$whateveritwas
перед перезаписью.Вы должны быть в состоянии установить время ожидания с
/proc/sys/net/ipv4/tcp_fin_timeout
.Кажется, нет никакого способа очистить сокет вручную.
источник
Кажется, что настройка tcp_orphan_retries контролирует, сколько попыток будет сделано до освобождения порта без сервера. Здесь было 0, после установки 1 порты исчезли.
НТН
источник
/proc/sys/net/ipv4/tcp_fin_timeout
время ожидания состояния FIN-WAIT-2, а не FIN-WAIT-1. Вы должны пойти по маршруту tcpkill, или вы можете попытаться поиграть со временем активности активности,/proc/sys/net/ipv4/tcp_keepalive_*
чтобы вызвать убийство SO.источник
Выполнение этих шагов под root ID, и это прояснилось для меня:
Захват настройки ядра для изменения в переменной
Временно установите максимальное число сирот на 0
Убедитесь, что проблемный порт больше не используется
Подождите немного и повторите шаг, если это необходимо, пока команда не вернет никаких строк
Сбросить параметр ядра tcp_max_orphans обратно к исходному значению из переменной выше
источник
Ваше приложение закрыло свою сторону соединения, теперь сокет ожидает, пока удаленная сторона подтвердит это закрытие. Если у вас есть проблема с большим количеством этих сокетов, хранящихся в FIN_WAIT1, вы должны следовать совету Манни выше.
источник
В ядре Linux> = 4.9 вы можете использовать
ss
команду из iproute2 с ключом -Kss -K dst 192.168.1.214 dport = 49029 ядро должно быть скомпилировано с включенной опцией CONFIG_INET_DIAG_DESTROY.
через /unix//a/511691/43898
источник
Может быть, tcpkill поможет? Подробнее здесь: http://www.cyberciti.biz/howto/question/linux/kill-tcp-connection-using-linux-netstat.php
источник
это может помочь:
источник