web-dev-qa-db-ja.com

FIN_WAIT1状態のソケットを取り除くにはどうすればよいですか?

強制終了する必要があるプロセスによってブロックされているポートがあります。 (クラッシュした小さなtelnetデーモン)。プロセスは正常に強制終了されましたが、ポートはまだ「FIN_WAIT1」状態です。それから出てくるのではなく、そのタイムアウトは「10年」に設定されているようです。

私がこのポートを解放する唯一の方法は、マシン全体をリブートすることです。これは当然のことですが、私はしたくないものです。

$ netstat -tulnap | grep FIN_WAIT1 
tcp        0  13937 10.0.0.153:4000         10.0.2.46:2572          FIN_WAIT1  -

再起動せずにこのポートのブロックを解除する方法を誰かが知っていますか?

20
Gert M
# record what tcp_max_orphans's current value
original_value=$(cat /proc/sys/net/ipv4/tcp_max_orphans)

#set the tcp_max_orphans to 0 temporarily
echo 0 > /proc/sys/net/ipv4/tcp_max_orphans

# watch /var/log/messages
# it will split out "kernel: TCP: too many of orphaned sockets"
# it won't take long for the connections to be killed

# restore the value of tcp_max_orphans whatever it was before. 
echo $original_value > /proc/sys/net/ipv4/tcp_max_orphans

# verify with 
netstat -an|grep FIN_WAIT1
19
IdaWong

/proc/sys/net/ipv4/tcp_fin_timeoutでタイムアウトを設定できるはずです。

ソケットを手動でクリアする方法はないようです。

7
innaM

Tcp_Orphan_retries設定は、サーバーレスポートが解放されるまでに試行される回数を制御しているようです。ここでは0でした。1に設定すると、ポートが失われます。

HTH

6
user64877

/proc/sys/net/ipv4/tcp_fin_timeoutは、FIN-WAIT-1ではなく、FIN-WAIT-2状態のタイムアウトです。 tcpkillルートを使用する必要があります。そうしないと、/proc/sys/net/ipv4/tcp_keepalive_*のキープアライブ時間を使用して、SOによる強制終了を試すことができます。

5

ルートIDでこれらの手順を実行すると、クリアされました。

カーネル設定をキャプチャして、変数を変更します

$ orig_orphans=$(sysctl -a|grep tcp_max_orph|cut -f3 -d' ')

一時的に最大オーファンを0に設定します

$ sysctl -w net.ipv4.tcp_max_orphans=0

問題のあるポートが使用されていないことを確認してください

$ netstat -np|grep 9716

上記のコマンドが行を返さなくなるまで、少し待って、必要に応じて上記の手順を繰り返します。

Tcp_max_orphansカーネルパラメータを上の変数の元の値にリセットします

$ sysctl -w net.ipv4.tcp_max_orphans=$orig_orphans
2
Rad Mandapati

FIN_WAIT1

ローカルマシン上のアプリケーションが接続を閉じました。これを示す情報がリモートマシンに送信されました。

アプリケーションは接続の側を閉じました。ソケットは、リモート側が閉じることを確認するのを待っています。これらのソケットの多くがFIN_WAIT1で保持されていることに問題がある場合は、上記のManniのアドバイスに従う必要があります。

1
Dave Cheney

Linuxカーネル> = 4.9では、-Kを指定してiproute2からssコマンドを使用できます

ss -K dst 192.168.1.214 dport = 49029カーネルは、CONFIG_INET_DIAG_DESTROYオプションを有効にしてコンパイルする必要があります。

https://unix.stackexchange.com/a/511691/43898 経由

0
eri