Linuxサーバーの通信トラブル調査中、以下のような状態に遭遇したことはないでしょうか。
- ss や netstat で SYN-RECV が大量に表示される
- 時間が経っても減らない
- クライアントからの接続が遅い・失敗する
この状態は、
「接続要求は来ているが、接続が完了していない」
ことを意味します。
本記事では、
- SYN-RECV が示す正しい意味
- 溜まり続ける典型的な原因
- 実務での切り分けと対処法
- どこまで直れば解決と判断できるか
を、Linux運用者向けに整理して解説します。
目次
SYN-RECVとは何が起きている状態か
TCP通信は以下の流れで接続されます。
- クライアント → SYN
- サーバー → SYN/ACK
- クライアント → ACK
SYN-RECV とは、
サーバーが SYN/ACK を返し、ACK 待ちの状態
です。
つまり、
- 通信要求は届いている
- サーバーも応答している
- 最後の ACK が返ってきていない
という、途中で止まっている状態です。
確認方法:SYN-RECVの見方
ss -ant | grep SYN-RECV
この状態が、
- 一時的に出る → 正常
- 増え続ける → 異常
と判断します。
解決の判断基準:
SYN-RECV が短時間で消え、ESTABLISHED に移行する
原因1:クライアント側がACKを返していない
最も多い原因です。
- クライアントが高負荷
- 通信途中でFWに落とされている
- ロードバランサ配下の死活異常
確認方法
tcpdump -nn port ポート番号
SYN/ACK に対する ACK が返ってこない場合、 クライアント側の問題です。
原因2:サーバー側のバックログ枯渇
接続要求は、
listen キュー(バックログ)
に一度溜められます。
このキューが溢れると、
- SYN-RECV が溜まる
- 新規接続が完了しない
状態になります。
確認ポイント
ss -lnt
Recv-Q / Send-Q が上限に近い場合、 バックログ不足を疑います。
対処:
アプリの backlog 設定や net.core.somaxconn を見直します。
原因3:ファイアウォール・セキュリティ機器での遮断
途中経路で、
- SYN は通る
- ACK が落とされる
ケースは非常に多いです。
特に、
- WAF
- IPS/IDS
- クラウドFW
では頻発します。
切り分け
サーバー側で SYN/ACK が出ているかを tcpdump で確認します。
原因4:SYN flood などの攻撃
大量の SYN を送り、 ACK を返さない攻撃です。
この場合、
- SYN-RECV が大量に残る
- 正規ユーザーも接続できない
状態になります。
確認
ss -ant | grep SYN-RECV | wc -l
異常に多い場合、 SYN flood を疑います。
対処:
SYN cookie を有効化する
原因5:アプリケーションのaccept遅延
アプリが、
- 高負荷
- スレッド枯渇
状態だと、 accept() が遅れ SYN-RECV が増えます。
確認
ESTABLISHED に移行せず、 SYN-RECV が残り続ける場合は アプリ側を疑います。
実務的な切り分けフロー
- ss で SYN-RECV 数を確認
- tcpdump で ACK が返っているか確認
- バックログ・キューの状態を見る
- FW / LB / 攻撃を疑う
- 最後にアプリの負荷を見る
まとめ
- SYN-RECV は「接続途中で止まっている状態」
- 溜まり続けるのは異常
- 原因はクライアント・経路・サーバーの3方向
SYN-RECV が減らず困った時は、
「ACKがどこで消えているか」
を追うことで、原因に辿り着けます。
あわせて読みたい


ssでESTABLISHEDなのに通信できない時の原因と確認ポイント
Linuxサーバーで以下のような状況に直面したことはないでしょうか。 ss では ESTABLISHED と表示されている 接続自体は確立している しかし通信が返ってこない/処理が…
あわせて読みたい


Linuxでポートは開いているのに接続できない理由
Linuxサーバーで以下のような状況に遭遇したことはないでしょうか。 ss や netstat では LISTEN している firewalld / iptables も許可済み それでも接続できない・タイ…
あわせて読みたい


MTU不一致で起きるパケットロスの見抜き方(Linux編)
通信はできている。 しかし、特定の通信だけ失敗する、レスポンスが極端に遅い。 このような症状の原因として非常に多いのが MTU(Maximum Transmission Unit)の不一致…
