![クライアントの[SYN]パケットを受信した後、私のHTTPプロキシが[SYN、ACK]に応答しないのはなぜですか?](https://linux33.com/image/24079/%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%AE%5BSYN%5D%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%82%92%E5%8F%97%E4%BF%A1%E3%81%97%E3%81%9F%E5%BE%8C%E3%80%81%E7%A7%81%E3%81%AEHTTP%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7%E3%81%8C%5BSYN%E3%80%81ACK%5D%E3%81%AB%E5%BF%9C%E7%AD%94%E3%81%97%E3%81%AA%E3%81%84%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F.png)
Linux(RHEL 5.5)で実行されているhttpプロキシがあり、クライアントから[SYN]パケットを受信した後、断続的に[SYN、ACK]パケットで応答しません。この問題は、エージェントを再起動すると元に戻すことができます。エージェントプロセスに対してgstackを実行しましたが、各スレッドのスタックに問題(停止)が表示されませんでした。この問題が発生している間、「SYN_RECV」状態の接続は100個未満でした。
どんなアイデアがありますか?この問題はどこでデバッグを開始する必要がありますか?
どんなアドバイスも本当にありがとうございます。
答え1
SYN と ACK の不足は、通常、サーバーソフトウェアがaccept
接続されていないことを示します。これは多くの理由による可能性があり、ほとんどの場合、リソースの枯渇の可能性が高くなります。サーバープロセスを試してシステムstrace
コールにいることを確認しaccept
たり、選択のためにファイル記述子のサーバーソケットで操作を実行したりできますselect
。poll
答え2
ファイアウォールの問題のようです。 TCP接続が最初のSYN + ACK応答を受信すると、パケットがプロキシサーバーに送信されない可能性が高くなります。
サーバー側とクライアント側を確認してください。