GNU/Linux >> Linux の 問題 >  >> Linux

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

解決策 1:

# 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

解決策 2:

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

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

解決策 3:

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

HTH

解決策 4:

/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

Linux
  1. `^ m`そしてそれを取り除く方法は?

  2. Ubuntuでマウスラグを取り除く方法は?

  3. Linuxでディレクトリサイズを取得する方法

  1. psを印刷グループにするにはどうすればよいですか?

  2. bash 関数を設定解除または削除するにはどうすればよいですか?

  3. Linux で再起動をスケジュールするにはどうすればよいですか?

  1. OpenWrt 10.03 で接続されている wifi クライアントのリストを取得する方法は?

  2. crontab -e ファイルをバックアップする方法

  3. 逃げる方法!パスワードで?