Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ошибкС open other end initially часто ставит Π² Ρ‚ΡƒΠΏΠΈΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡ€ΠΈ установкС сСтСвых соСдинСний. Π­Ρ‚ΠΎΡ‚ тСхничСский Ρ‚Π΅Ρ€ΠΌΠΈΠ½, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ Π² Π»ΠΎΠ³Π°Ρ… сСрвСров ΠΈ клиСнтских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° аномальноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² процСссС рукопоТатия ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΡƒΠ·Π»Π°ΠΌΠΈ сСти. ПониманиС сути этой Ρ„Ρ€Π°Π·Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ систСмным администраторам ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΌΡΡ ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв данная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π½Π΅ Π² физичСском ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ кабСля, Π° Π² логичСском рассинхронизации состояний сокСта. Когда ΠΎΠ΄Π½Π° сторона пытаСтся ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ соСдинСниС, Π° другая ΡƒΠΆΠ΅ считаСт ΠΊΠ°Π½Π°Π» ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» TCP, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Π² основС Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ строгой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ шагов, Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹ Π² Π»ΠΎΠ³Π°Ρ….

Для эффСктивного устранСния нСисправности трСбуСтся Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² событий. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π½Π΅ просто сбой"Π½Π° Ρ€ΠΎΠ²Π½ΠΎΠΌ мСстС", Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слоТного взаимодСйствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². НиТС ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΡƒ процСсса, Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ сцСнарии возникновСния ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ… устранСния.

ΠœΠ΅Ρ…Π°Π½ΠΈΠΊΠ° возникновСния ошибки соСдинСния

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° появлСния сообщСния open other end initially кроСтся Π² рассогласовании состояний ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° TCP. Π’ идСальном сцСнарии ΠΎΠ±Π΅ стороны находятся Π² состоянии LISTEN ΠΈΠ»ΠΈ CLOSED Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ рукопоТатия. Если ΠΆΠ΅ ΠΎΠ΄Π½Π° ΠΈΠ· сторон ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΏΠ΅Ρ€Π΅ΡˆΠ»Π° Π² состояниС ESTABLISHED ΠΈΠ»ΠΈ SYN_SENT, оТидая ΠΎΡ‚Π²Π΅Ρ‚Π°, Π° ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ пытаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Π½Π°Π», Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ описываСмая коллизия.

Битуация часто усугубляСтся Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠΌΠΈ соСдинСния. Π‘Π΅Ρ‚Π΅Π²ΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ мСТсСтСвыС экраны, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ"Ρ‚ΠΈΡ…ΠΈΠ΅" соСдинСния, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° клиСнтской сторонС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π» Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡƒΠΆΠ΅ Ρ€Π°Π·ΠΎΡ€Π²Π°Π½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π΅Ρ‰Π΅ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сокСт, систСма Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ЧастыС появлСния этой ошибки ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ΅ сСтСвого стСка ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈΠ»ΠΈ исчСрпании Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² Π½Π° количСство ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΏΠΎΡ€Ρ‚ΠΎΠ². Если ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ, опСрационная систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚ Π² состоянии TIME_WAIT. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ процСсса Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π°Π½ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΠΎΡ€Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ логируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с состояниСм"other end".

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ сцСнарии Π² сСрвСрной срСдС

Π’ высоконагруТСнных сСрвСрных срСдах данная ошибка встрСчаСтся ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡƒΠ»ΠΎΠ² соСдинСний. Когда клиСнтскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ соСдинСниС ΠΈΠ· ΠΏΡƒΠΊΠ°, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ сокСт. Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ PostgreSQL ΠΈΠ»ΠΈ MySQL, особСнно Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ чистотС устанавливаСмых соСдинСний, ΠΈ любая аномалия Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сбой.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ распространСнный сцСнарий связан с Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ прокси-сСрвСров ΠΈ балансировщиков Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Nginx ΠΈΠ»ΠΈ HAProxy ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Ρ€Ρ‹Π²Π°Ρ‚ΡŒ соСдинСниС с бэкСндом ΠΈΠ·-Π·Π° Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π°, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ клиСнтская сторона ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Π»ΠΎΠ³Π°Ρ… бэкСнда это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ появлСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚"Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π°", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΏΠΎ мнСнию сСрвСра, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π±Ρ‹ сначала ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ открытия.

  • πŸ”Œ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: ΠšΠ»ΠΈΠ΅Π½Ρ‚ отправляСт Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ трСхстороннСго рукопоТатия.
  • πŸ”„ ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°: ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
  • ⏳ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ контСкст соСдинСния Π΅Ρ‰Π΅ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½.

Π’Π°ΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ влияниС антивирусного ПО ΠΈ систСм ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Они ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ сСтСвыС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для Π°Π½Π°Π»ΠΈΠ·Π°, внося Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈΠ»ΠΈ разрывая соСдинСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ каТутся ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ создаСт эффСкт"Ρ„Π°Π½Ρ‚ΠΎΠΌΠ½ΠΎΠ³ΠΎ" открытия ΠΊΠ°Π½Π°Π»Π°, ΠΊΠΎΠ³Π΄Π° логичСскоС состояниС соСдинСния Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ совпадаСт с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ состояниСм Π² сСтСвом стСкС.

πŸ“Š Π‘Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ Π»ΠΈ Π²Ρ‹ с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ сСтСвыми ошибками?
Π”Π°, часто
Π Π΅Π΄ΠΊΠΎ, ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ
Волько ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅
Никогда нС видСл

Диагностика ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с сокСтами

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π² диагностикС Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· систСмных Π»ΠΎΠ³ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ netstat ΠΈΠ»ΠΈ ss для просмотра Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния ΠΏΠΎΡ€Ρ‚ΠΎΠ². Команда ss -tan ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ всС TCP-соСдинСния ΠΈ ΠΈΡ… статусы. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ мноТСство соСдинСний Π² состоянии TIME_WAIT ΠΈΠ»ΠΈ CLOSE_WAIT, это прямой ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с освобоТдСниСм рСсурсов.

Для Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ снифСр Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Wireshark ΠΈΠ»ΠΈ tcpdump позволят ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π˜Ρ‰ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с Ρ„Π»Π°Π³ΠΎΠΌ RST (сброс) ΠΈΠ»ΠΈ FIN (Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приходят Π² нСподходящий ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, какая ΠΈΠΌΠ΅Π½Π½ΠΎ сторона ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π·Ρ€Ρ‹Π² ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅.

tcpdump -i any -n port 80 and tcp

ΠŸΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΊΠΎΠ΄Π° прилоТСния ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. Часто ошибка open other end initially Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π½Π΅ провСряСт состояниС сокСта ΠΏΠ΅Ρ€Π΅Π΄ записью ΠΈΠ»ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ. ИспользованиС Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π±Π΅Π· Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ зависанию ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ошибкам ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Ρ€Π΅Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ соСдинСния.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ strace (Π² Linux) ΠΈΠ»ΠΈ Process Monitor (Π² Windows) для отслСТивания систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² сокСта Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ΠΎΡ‚ΠΊΠ°Π·Π°.

Настройка Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ΠΎΠ² ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² сСти

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² TCP-стСка часто позволяСт ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ появлСния ошибки. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы ΠΈΠΌΠ΅ΡŽΡ‚ мноТСство настраиваСмых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ tcp_keepalive_time, tcp_fin_timeout ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ². ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ значСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ соСдинСния Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ слишком Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π²ΠΈΡΠ΅Ρ‚ΡŒ бСсконСчно.

Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Ρ‹. Π’Π°ΠΉΠΌ-Π°ΡƒΡ‚ соСдинСния Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½ΠΈ слишком ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ (Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π»ΠΎΠΆΠ½Ρ‹Π΅ срабатывания ΠΏΡ€ΠΈ ΠΏΠΈΠΊΠΎΠ²Ρ‹Ρ… Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ…), Π½ΠΈ слишком Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ (Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ накоплСнию"ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Ρ…" сокСтов). Баланс зависит ΠΎΡ‚ спСцифики прилоТСния ΠΈ качСства сСти.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ВлияниС Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ
tcp_keepalive_time ВрСмя простоя Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ 600 сСк ВысокоС
tcp_fin_timeout ВрСмя оТидания FIN-ΠΏΠ°ΠΊΠ΅Ρ‚Π° 60 сСк Π‘Ρ€Π΅Π΄Π½Π΅Π΅
tcp_max_tw_buckets Π›ΠΈΠΌΠΈΡ‚ сокСтов Π² TIME_WAIT 144000 ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠ΅
tcp_tw_reuse ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС TIME_WAIT 1 (Π’ΠΊΠ») ВысокоС

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ настройки сСти ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π’ Windows ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ рССстра ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ стандартныС значСния Linux-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСм. ВсСгда провСряйтС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊ вашСй ОБ ΠΏΡ€ΠΈ внСсСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

β˜‘οΈ Диагностика сСти

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

ВлияниС брандмауэров ΠΈ антивирусов

ΠœΠ΅ΠΆΡΠ΅Ρ‚Π΅Π²Ρ‹Π΅ экраны ΠΈ систСмы прСдотвращСния Π²Ρ‚ΠΎΡ€ΠΆΠ΅Π½ΠΈΠΉ (IPS) часто становятся скрытой ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с соСдинСниСм. Анализируя Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Ρ€Ρ‹Π²Π°Ρ‚ΡŒ соСдинСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ каТутся ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ нСстандартной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ„Π»Π°Π³ΠΎΠ² TCP. Для сСрвСра это выглядит ΠΊΠ°ΠΊ Ρ€Π΅Π·ΠΊΠΈΠΉ ΠΎΠ±Ρ€Ρ‹Π², Π° для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° β€” ΠΊΠ°ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ°Π½Π°Π».

АнтивирусноС ПО с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ сСтСвой Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ проходящий ΠΏΠ°ΠΊΠ΅Ρ‚, внося Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. Если врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ установлСнный Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚, соСдинСниС считаСтся потСрянным. ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ отправитСля систСма ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с состояниСм"other end", Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ контСкст ΡƒΠΆΠ΅ Π±Ρ‹Π» ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ сСтСвых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π°Π½Ρ‚ΠΈΠ²ΠΈΡ€ΡƒΡΠ½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² тСстовом ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ. На Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ сСрвСрС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ процСссов ΠΈΠ»ΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π² настройках Ρ„Π°Π΅Ρ€Π²ΠΎΠ»Π°.

Для выявлСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ΠŸΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ (Π² бСзопасном Ρ€Π΅ΠΆΠΈΠΌΠ΅) ΠΈ провСряйтС ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ соСдинСния. Если ошибка исчСзаСт послС добавлСния ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ прилоТСния, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π² агрСссивной ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ бСзопасности.

РСшСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… прилоТСниях

Π’ зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. НапримСр, Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… часто ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ очистка ΠΏΡƒΠ»Π° соСдинСний ΠΈΠ»ΠΈ пСрСзапуск слуТбы управлСния соСдинСниями. Π’ Π²Π΅Π±-сСрвСрах ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² keepalive ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ².

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Node.js, Python ΠΈΠ»ΠΈ Java, Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ события сокСта. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² сокСт послС события close ΠΈΠ»ΠΈ error. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ с автоматичСским ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ (reconnect logic) с ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ сСтСвыС сбои.

  • πŸ’» Node.js: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ события `error` ΠΈ `end` Π½Π° сокСтС.
  • 🐍 Python: Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ сокСт Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ послС закрытия контСкстным ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ.
  • β˜• Java: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ настройки `SO_LINGER` ΠΈ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Ρ‹ Π² `Socket`.

Если ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² распрСдСлСнных систСмах (микросСрвисы), ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ врСмя Π½Π° всСх сСрвСрах синхронизировано Ρ‡Π΅Ρ€Π΅Π· NTP. Рассинхронизация Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ сСртификатов SSL/TLS ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ воспроизвСдСния (replay protection), Ρ‡Ρ‚ΠΎ косвСнно Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сбои соСдинСния.

Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ сбоСв

Иногда ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π² MTU (Maximum Transmission Unit). Если Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ допустимый Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ участкС сСти, ΠΈ Ρ„Π»Π°Π³ DF (Don't Fragment) установлСн, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π΅Ρ€ΡΡ‚ΡŒΡΡ, вызывая Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Ρ‹ ΠΈ ошибки соСдинСния.

ΠŸΡ€ΠΎΡ„ΠΈΠ»Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ появлСния ошибки open other end initially Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ систСму постоянного ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° сСтСвой активности. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Prometheus Π² связкС с Grafana ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… соСдинСний, ошибок ΠΈ врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°. Π Π΅Π·ΠΊΠΈΠΉ рост ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ станСт Ρ€Π°Π½Π½ΠΈΠΌ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΎ Π½Π°Π΄Π²ΠΈΠ³Π°ΡŽΡ‰Π΅ΠΉΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅.

РСгулярноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ сСтСвого оборудования ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ часто Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΏΠ°Ρ‚Ρ‡ΠΈ, ΡƒΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠ΅ уязвимости ΠΈ Π±Π°Π³ΠΈ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ стСка TCP/IP. ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ всСх Ρ‚ΠΈΠΏΠΎΠ² Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

Π’Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ сСтСвой инфраструктурС ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстрСС Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ источник ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π—Π½Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ сСти, располоТСния балансировщиков ΠΈ Ρ„Π°Π΅Ρ€Π²ΠΎΠ»ΠΎΠ² позволяСт ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ рассинхронизация состояний.

πŸ’‘

Π‘Π²ΠΎΠ΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ настройка Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ΠΎΠ² ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ 90% ошибок, связанных с состояниСм сСтСвых соСдинСний.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка"open other end initially"?

Ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΠ·-Π·Π° рассинхронизации состояний TCP-сокСта, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° сторона пытаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ соСдинСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ другая сторона считаСт Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ. Часто Π²Ρ‹Π·Π²Π°Π½ΠΎ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π°ΠΌΠΈ, сбоями оборудования ΠΈΠ»ΠΈ ошибками Π² ΠΊΠΎΠ΄Π΅ прилоТСния.

Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…?

НСобходимо ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ настройки ΠΏΡƒΠ»Π° соСдинСний, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Ρ‹ оТидания ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ количСство ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π»ΠΈΠΌΠΈΡ‚Ρ‹ сСрвСра. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ слуТбу Π‘Π£Π‘Π” для очистки Π·Π°Π²ΠΈΡΡˆΠΈΡ… сСссий.

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ антивирус Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ?

Π”Π°, антивирусноС ПО с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ сСтСвой Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Ρ€Ρ‹Π²Π°Ρ‚ΡŒ соСдинСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ считаСт ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΈΠ»ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, приводящиС ΠΊ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π°ΠΌ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π»ΠΎΠ³ΠΎΠ² антивируса ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ TIME_WAIT Π² контСкстС этой ошибки?

TIME_WAIT β€” это состояниС TCP-сокСта послС закрытия соСдинСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ подтвСрТдСния доставки послСдних ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Если систСма исчСрпаСт Π»ΠΈΠΌΠΈΡ‚ сокСтов Π² этом состоянии, Π½ΠΎΠ²Ρ‹Π΅ соСдинСния Π½Π΅ смогут Π±Ρ‹Ρ‚ΡŒ установлСны, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкам.