Eu tenho uma porta que está bloqueada por um processo que eu precisava matar. (um pequeno daemon de telnet que travou). O processo foi interrompido com sucesso, mas a porta ainda está no estado 'FIN_WAIT1'. Não sai disso, o tempo limite parece estar definido para 'uma década'.
A única maneira que encontrei para liberar a porta é reiniciar a máquina inteira, o que é obviamente algo que eu não quero fazer.
$ netstat -tulnap | grep FIN_WAIT1
tcp 0 13937 10.0.0.153:4000 10.0.2.46:2572 FIN_WAIT1 -
Alguém sabe como posso obter essa porta desbloqueada sem reiniciar?
$whateveritwas
antes de substituí-la.Você deve poder definir o tempo limite com
/proc/sys/net/ipv4/tcp_fin_timeout
.Realmente não parece haver nenhuma maneira de limpar o soquete manualmente.
fonte
Parece que a configuração tcp_orphan_retries controla quantas tentativas serão feitas antes que uma porta sem servidor seja liberada. Era 0 aqui, depois de defini-lo como 1, as portas se foram.
HTH
fonte
/proc/sys/net/ipv4/tcp_fin_timeout
é o tempo limite do estado FIN-WAIT-2, não FIN-WAIT-1. Você deve seguir a rota tcpkill ou pode tentar brincar com os tempos de manutenção ao vivo/proc/sys/net/ipv4/tcp_keepalive_*
para forçar uma morte pelo SO.fonte
Executando estas etapas no ID da raiz e liberado para mim:
Capture a configuração do kernel para alterar em uma variável
Defina temporariamente o máximo de órfãos como 0
Verifique se a porta problemática não está mais em uso
Aguarde um pouco e repita a etapa acima, se necessário, até que o comando acima não retorne linhas
Redefina o parâmetro do kernel tcp_max_orphans de volta ao valor original da variável acima
fonte
Seu aplicativo fechou o lado da conexão, o soquete está aguardando o lado remoto confirmar esse fechamento. Se você tiver um problema com muitos desses soquetes em FIN_WAIT1 , siga as orientações de Manni acima.
fonte
No kernel do linux> = 4.9, você pode usar o
ss
comando iproute2 com a tecla -Kss -K dst 192.168.1.214 dport = 49029 o kernel precisa ser compilado com a opção CONFIG_INET_DIAG_DESTROY ativada.
via /unix//a/511691/43898
fonte
Talvez tcpkill ajudaria? Mais aqui: http://www.cyberciti.biz/howto/question/linux/kill-tcp-connection-using-linux-netstat.php
fonte
isso pode ajudar:
fonte