آیا Git بدون VPN متوقف میشود؟ OpenSSH بستهها را با IPQoS علامت میزند
OpenSSH بهطور پیشفرض بستههایش را با مقدار QoS علامت میزند. جایی که مسیر آن علامت را دور بریزد، push تا زمانی که یک تونل مسیر بستهها را عوض کند متوقف میماند.
یک کلون از دفتر کار میکند، همان کلون از طریق هاتاسپات گوشی کار میکند، و همان کلون از شبکه هتل تا روشن شدن VPN معلق میماند. دستدادن SSH تمام میشود و نشست در نخستین انتقال واقعی ساکت میماند. یک خط که به پیکربندی کلاینت افزوده شود، git و ssh را با هم درمان میکند. وقتی یک تنظیم کلاینت چند ابزار را همزمان درست میکند، ایراد در چیزی است که کلاینت میفرستد، نه در پیوندی که از آن میفرستد.
نشانه را بهعنوان تفاوت مسیر بخوانید
تونلی که مشکلی را درمان میکند بهندرت یک تعمیر است. مسیر، حامل و دستگاههای میانی را عوض میکند، در حالی که لپتاپ دقیقاً همان بستهها را تولید میکند. اگر یک مسیر سرصفحه را بد مدیریت کند و مسیر دیگر آن را دستنخورده بگذراند، تفاوت در سیاست دستگاه میانی است، نه در کلاینت. اینجا تونل شاهد است، نه راهحل.
نقطهای که نشست میمیرد آن را تنگتر میکند. هیچ چیز که در جستوجوی نام یا در تبادل کلید شکست بخورد اینگونه نیست. نشستی که احراز هویت میکند، بنر چاپ میکند و سپس در نخستین نوشتن بزرگ یخ میزند، پیشتر ثابت کرده است که مسیریابی، نامگذاری و اعتبارنامهها همه کار میکنند.
کلاینت روی هر سوکت SSH یک بایت QoS میزند
هر اتصال OpenSSH از 7.8 به بعد مقداری را در سرصفحه IP حمل میکند که روترها میتوانند برای اولویتدادن به ترافیک به کار ببرند. نشستهای ترمینال یک مقدار میگیرند و کپیهای انبوه مقداری دیگر، بر این نظریه که انسانی که تایپ میکند سزاوار رفتار بهتری از انتقال فایل است. بیشتر شبکهها این اشاره را کاملاً نادیده میگیرند، به همین دلیل سالها بیتوجه میماند. اقلیتی از درایورهای Wi-Fi، اپراتورهای همراه و متمرکزکنندههای VPN بر اساس آن عمل میکنند و برخی از آنها بد عمل میکنند.
وقتی این مقدار در میانه جریان بازنویسی یا دور انداخته شود، اتصال شکست نمیخورد، بلکه از پیش رفتن میایستد. ارسالهای مجدد بالا میرود، پنجره فرو میریزد، و برنامه چیزی گزارش نمیکند چون هیچ چیزی خطا نداده است. همین سکوت باعث میشود مردم نشانه را بهجای شکست، بهعنوان توقف توصیف کنند.
نخست نسخه کلاینت را با ssh -V تأیید کنید. هر نسخه 7.8 یا بالاتر این رفتار را بهطور پیشفرض دارد.
سه فرمانی که این را از MTU و DNS جدا میکند
دو مورد مشابه پیش از ویرایش هر فایل پیکربندی باید کنار گذاشته شوند. خطای MTU مبادلات کوچک را رد میکند و در نخستین بسته بزرگ یخ میزند، در حالی که خطای نامگذاری هرگز نشستی پدید نمیآورد.
ssh -o IPQoS=none -v [email protected]
ssh -G [email protected] | grep -i ipqos
sudo tcpdump -ni any -vv "tcp port 22"
فرمان نخست عملیات ناموفق را با نشانه خاموش تکرار میکند و اجرای موفق آن قویترین مدرک منفرد موجود است. دومی پیکربندیای را چاپ میکند که کلاینت واقعاً به آن مقصد اعمال خواهد کرد، و این یک ورودی کهنه در فایلی را که فراموش کرده بودید میگیرد. سومی بایت TOS را در هر دو جهت در حالی که انتقال گیر کرده نشان میدهد، و الگوی جالب وجود یک مقدار روی مسیر خراب و نبودن آن روی مسیر سالم است.
ضبط را روی لپتاپ بگیرید نه روی سرور، چون فرستنده مقدار را میگذارد و هر دو جهت میتوانند آن را تغییر دهند. یک مسیر سالم و یک مسیر ناسالم را با همان ضبط مقایسه کنید و تفاوت بدون حدس زدن پدیدار میشود.
استثنا را در یک فایل بگذارید، هر بار یک میزبان
استثنا باید کنار میزبانی باشد که به آن مربوط است، همراه با توضیحی که میگوید چرا وجود دارد.
Host gitlab.example.internal
IPQoS none
# direct route rewrites the marking; the tunnel route passes it
دامنه مهمتر از خود مقدار است. یک ورودی عام رفتار را همهجا خاموش میکند، اشارهای را که در شبکههای خوشرفتار کمک میکند دور میریزد، و به هیچکس اجازه نمیدهد بگوید کِی پدید آمده است. ورودی بهازای هر میزبان خوانا، برگشتپذیر و پس از تعمیر شبکه بهسادگی حذفشدنی است. برای راهحل شخصی از فایل کاربر و وقتی یک ناوگان کامل به همان استثنا نیاز دارد از فایل مدیریتشده استفاده کنید.
روشن بگویید که استثنا چه چیزی را پوشش نمیدهد. برای SSH اعمال میشود، پس یک ریموت HTTPS، یک آینه بسته و یک مرورگر همه بیرون از آن میمانند، و شکست در هر یک از آنها مدرک خودش را میخواهد. در زنجیرهای از یک سنگر، هر پرش از پیکربندی کلاینت استفاده میکند، و پرشی که متوقف میشود همان است که ارزش محدود کردن دارد.
حلقه را با مالک شبکه ببندید
یافته را بهعنوان چهار واقعیت تحویل دهید: نسخه کلاینت، مسیر آزمایششده، کلاینت VPN در استفاده، و اینکه کدام جهت نشانه را حمل کرده است. این چهار برای مالک شبکه کافی است تا رفتار را بازتولید کند و تصمیم بگیرد که آیا عمدی است.
اگر استثنا توقف را درمان نمیکند، آن را بردارید. راهحلی که از یک آزمایش ناموفق جان به در میبرد به افسانه تبدیل میشود و نفر بعدی یک ساعت صرف اثبات بیفایده بودنش میکند. اگر توقف را درمان میکند، مسیر همچنان برای هر ابزار دیگری که از آن میگذرد اشتباه است و تعمیر به عهده کسی است که دستگاه میانی را اداره میکند.
تغییر کلاینت یک راهحل موقت با تاریخ انقضاست. آن تاریخ را در توضیح بنویسید.