ホームページ > 運用・保守 > Linuxの運用と保守 > Linux で TCP 接続が解放されない場合の対処方法

Linux で TCP 接続が解放されない場合の対処方法

WBOY
リリース: 2022-07-13 10:53:15
オリジナル
3756 人が閲覧しました

解決策: 1. キープアライブ設定を適切な値に変更することで、ポート接続をすぐに解放できます。echo を使用して「set tcp_keepalive_time」を設定します。構文は、「echo "値を指定" > /proc/」です。 sys/ net/ipv4/tcp_keepalive_time"; 2. "/etc/sysctl.conf" ファイルを編集します (構文は "net.ipv4.tcp_keepalive_time=指定された値")。

Linux で TCP 接続が解放されない場合の対処方法

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

Linux の tcp 接続が解放されない場合はどうすればよいですか?

問題の説明

開発とテスト中に、接続が解放されていないことがわかりました。サーバーポートが切断され、再度接続されたときに拒否されました。

分析: ポートが 8080 であると仮定して、サーバー上のポート占有率を確認します。

netstat -anp |grep 8080
ログイン後にコピー

ポート 8080 が占有されていることがわかり (IP はローカル IP であり、最後の接続であると判断されます)、ステータスは ESTABLISHED ですが、実際には接続は切断されていますが、サーバーはは切断されていません。TCP キープアライブ設定を確認してください。

sysctl -a |grep keepalive
ログイン後にコピー

デフォルト設定であることが判明しました

net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75
ログイン後にコピー

デフォルトでは、接続が 7200 秒または 2 時間アイドル状態になった後、接続ステータスを確認するためにキープアライブ検出パケットが送信されます。

解決策

解決策:

1. キープアライブ設定を適切な値に変更することで (200 秒に変更するなど)、ポート接続が確立されます。すぐに解放できます。

一時的な修正、echo 経由で tcp_keepalive_time を設定します。

echo "200" >  /proc/sys/net/ipv4/tcp_keepalive_time
ログイン後にコピー

2.永続的に有効にするには、/etc/sysctl.conf を編集し、

net.ipv4.tcp_keepalive_time = 200
ログイン後にコピー

に追加または変更してからコマンドを実行して、変更した設定を有効にします

推奨される学習: Linux ビデオ チュートリアル

以上がLinux で TCP 接続が解放されない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート