[תחקיר תקלות] קִינון Proxy אחד בלבל אותי לגמרי: במכונת ה-Node רצף בקשות מוזרות, ובמחשב המקומי כמעט כל ה-Nodes לא מתחברים

הפעם זה באמת היה מאוד מוזר, כמעט בזבזתי לילה שלם, ורק בסוף גיליתי שהבעיה בכלל לא הייתה בצומת עצמו, אלא בכך שהפרוקסי במחשב המקומי “היה מקונן”.

התסמינים בהתחלה היו מאוד מוזרים:

  • בעל השרת של הצומת בא לשאול אותי מה קורה, ואמר שבצד השרת כל הזמן יש בקשות מוזרות רצופות.
  • אצלי, המחשב המקומי כמעט לא הצליח להתחבר לאף צומת.
  • ומה שיותר הזוי: לא משנה איך שיניתי את תצורת הפרוקסי המקומית, בצד של מכונת הצומת עדיין המשיכו לראות את אותן בקשות רצופות.

בהתחלה חשדתי בהרבה כיוונים, למשל:

  • הצומת עצמו קרס
  • תוכן המנוי בעייתי
  • הכללים נכתבו לא נכון
  • DNS או פרוקסי המערכת לא נותקו עד הסוף
  • איזו תוכנה ברקע מנסה שוב ושוב בטירוף

ובסוף, אחרי שבידדתי את הבעיה, התברר שהבעיה המרכזית היא בעצם לולאת פרוקסי / פרוקסי מקונן.

ליתר דיוק, באותו זמן לא רץ במחשב המקומי רק mihomo אחד, אלא שניים במקביל:

  • אחד הוא mihomo ש-Sparkle הנוכחי מרים כרגיל
  • השני הוא תהליך יתום ישן שנשאר כשארית

וכך מסלול התעבורה התחיל להיות מאוד מוזר, כמו “קצר” שמסתובב מקומית הלוך ושוב:

  • התצורה המקומית השתנתה, אבל הליבה שבאמת השתלטה על התעבורה לא בהכרח הייתה זו שחשבת
  • חלק מהבקשות הועברו שוב ושוב ויילכדו שוב ושוב, ובסופו של דבר בצד של מכונת הצומת זה נראה כמו בקשות מוזרות רצופות
  • והמחשב המקומי עצמו דווקא התנהג כאילו יש המון צמתים לא זמינים, וכמעט שלא ניתן להתחבר לאף אחד מהם

רק אחר כך נפל לי האסימון: זה לא סתם “הצומת התקלקל”, אלא פרוקסי מקומי בתוך פרוקסי מקומי / ליבה שנשארה כשארית הוסיפה עוד שכבה.

אחרי שסילקתי את תהליך השארית הישן, ופתחתי מחדש את Sparkle, המערכת חזרה להיות:

  • תהליך ראשי אחד של Sparkle
  • תהליך בן אחד של mihomo שמופעל על ידו

בשלב הזה זה כבר היה תקין.

הלקח מהפעם הזו מאוד ישיר:

  1. כשרואים “בצד הצומת יש בקשות רצופות מוזרות + במחשב המקומי כמעט כל הצמתים לא עובדים”, לא לחשוד רק בצד המרוחק.
  2. קודם לבדוק כמה ליבות פרוקסי רצות במחשב המקומי, במיוחד אם ל-mihomo יש תהליכי יתום שנשארו.
  3. ברגע שמתרחש קינון או לולאה, התסמינים נראים ממש כמו מיסטיקה; בפועל, מסלול התעבורה המקומי כבר התבלגן.

אם בעתיד אתקל שוב במצב דומה, אני חושב שהתגובה הראשונה צריכה להיות לבדוק קודם:

  • כמה mihomo רצים
  • מי תהליך האב, ומי תהליך יתום
  • איזה מופע באמת מאזין ל-7890/7891/7892
  • האם פרוקסי המערכת שוב מצביע חזרה על עצמו

הזוי, אבל לפחות למדתי מזה.