«اتصال از مهلت گذشت» کم‌دقت‌ترین خطایی است که یک کارخواه VPN می‌تواند چاپ کند. یعنی یک عملیات مهلتش را از دست داده، و هر مرحله از حل نام تا پاسخ ورود مهلتی دارد. کارخواه‌هایی که فقط پیام نهایی را نشان می‌دهند مرحله‌ها را یکسان جلوه می‌دهند، پس مردم مهلت را بالا می‌برند، پورت را عوض می‌کنند و پروفایل را دوباره نصب می‌کنند، به همین ترتیب، بدون آنکه چیزی بیاموزند. مقایسه مرحله‌ها سریع‌تر است: هر مرحله در جای دیگری شکست می‌خورد، و هر شکست نوع متفاوتی از شواهد بر جای می‌گذارد.

چهار مرحله، چهار شکست متفاوت

توالی ثابت است حتی وقتی کارخواه آن را پنهان می‌کند: نام باید حل شود، انتقالی به نشانی حاصل باید برقرار شود، پروتکل باید پارامترها و کلیدهایش را مذاکره کند، و حساب باید احراز هویت شود. راهنمای OpenVPN برای عیب‌یابی اتصال برای کارخواه خودش همین ترتیب را طی می‌کند، و بقیه نزدیک به آن را دنبال می‌کنند. مهلت در مرحله دوم و مهلت در مرحله چهارم چیزی جز واژه روی صفحه مشترک ندارند.

StageLooks likeWhat it does not prove
Name resolutionfails in under a second, before any contactnothing about the server being up
Transportwaits the full timeout, then gives upnothing about the VPN service behind the port
Negotiationconnects, then stalls at handshakenothing about credentials
Logina reply arrives and is rejected or hangs on a promptnothing about reachability

در گزارش به‌دنبال آخرین خطی بگردید که پیشرفت را نشان می‌دهد، نه آخرین خط پیش از خطا. بیشتر کارخواه‌ها چیزی مانند نشانی حل‌شده، سوکت برقرارشده، دست‌دادن آغازشده یا درخواست احراز هویت چاپ می‌کنند، و مرحله‌ای که پس از آن خط می‌آید همان مرحله‌ای است که مهلتش تمام شده.

حل نام پیش از هر تماسی شکست می‌خورد

اگر نقطه پایانی هرگز حل نشود، کارخواه چیزی برای اتصال ندارد و هیچ کار انتقالی رخ نداده است. این شکست معمولاً لحظه‌ای است نه یک مهلت کامل، و همین ارزان‌ترین راه جدا کردن آن از بقیه است. نام را با حل‌کننده سیستم و حل‌کننده دوم آزمایش کنید، و پیش از نتیجه‌گیری درباره از کار افتادن سرور دو پاسخ را مقایسه کنید.

نشانی قدیمی کپی‌شده از یک پست انجمن علت رایج مهلتی است که شبیه مشکل سرور به نظر می‌رسد، چون نشانی اکنون به چیز دیگری یا به هیچ‌چیز تعلق دارد. از پروفایل کنونی ارائه‌دهنده استفاده کنید نه جایگزین کردن نشانی‌ای که پیش‌تر کار می‌کرد. نبود پاسخ ping به هیچ سمتی دلیل نیست: بسیاری از نقطه‌های پایانی ICMP را دور می‌ریزند و در همان حال کاملاً خوب سرویس می‌دهند.

راه‌اندازی انتقال منتظر بسته‌ای است که نخواهد آمد

وقتی DNS درست است و کارخواه باز هم تمام مهلت را می‌سوزاند، لایه انتقال مشکوک است. روی TCP می‌توانید پورت را مستقیم آزمایش کنید؛ Test-NetConnection در Windows یا nc -vz در Linux به شما می‌گوید آیا چیزی اتصال را می‌پذیرد، و این از ping سودمندتر است. روی UDP نمی‌توانید به همان شکل آزمایش کنید، چون در آن لایه دست‌دادنی برای کامل کردن وجود ندارد، و این نبود تقارن نتیجه‌گیری‌های نادرست زیادی ایجاد می‌کند.

آنچه یک آزمایش TCP اثبات می‌کند محدود است: سرویسی که پورت 443 را می‌پذیرد لزوماً شنونده VPN نیست، و نقطه پایانی فقط-UDP هیچ پورت TCP برای پذیرش چیزی ندارد. بازنویسی پروفایل از UDP به TCP شنونده‌ای در طرف دیگر نمی‌سازد؛ فقط چیزی را که کارخواه شما منتظرش است عوض می‌کند. اگر شبکه پروتکل را پالایش کند، تغییر مهلت متفاوتی در همان مرحله تولید می‌کند.

درگاه‌های اسیر در این مرحله بررسی جداگانه می‌خواهند. تا زمانی که درگاه دستگاه را مجاز نکند، ترافیک خروجی به درگاه می‌رود و تلاش تونل فقط معلق می‌ماند. ابتدا درگاه را در مرورگر کامل کنید، سپس دوباره تلاش کنید، و تا وقتی درگاه در انتظار است پروفایل را عوض نکنید.

مذاکره و ورود یعنی سرور پاسخ داده است

به‌محض اینکه تونل به سرور برسد، کارخواه دست‌دادن را آغاز می‌کند و ماهیت خطا تغییر می‌کند. توقف در اینجا درباره سازگاری است نه دسترسی‌پذیری: نسخه‌های ناسازگار پروتکل، تنظیم رمز یا کانال داده که طرف دیگر نمی‌پذیرد، یا پروفایلی که ویژگی‌ای را انتظار دارد که سرور ارائه نمی‌دهد. OpenVPN پیش‌فرض‌های مذاکره‌اش را بین نسخه‌های اصلی آن‌قدر جابه‌جا کرده که پروفایلی نوشته‌شده برای یک نسل می‌تواند به سرور برسد و باز هم بالا نیاید.

احراز هویت آخرین مرحله و آسان‌ترین برای بدخواندن است. رد صریح یک پاسخ است، یعنی مسیر کار می‌کند و مشکل هویت، گواهی یا وضعیت حساب است. جریان ورود یکپارچه مبتنی بر مرورگر حالت سوم است: کارخواه منتظر اقدامی است که انجام نداده‌اید، یا مرورگری که نمی‌تواند اجرا کند، و تا آن مرحله را کامل نکنید چیزی نمی‌رسد.

پیش از تغییر تلاش دوباره، شواهد را مقایسه کنید

دستگاه و پروفایل را ثابت نگه دارید و هر بار یک چیز را عوض کنید، از شبکه شروع کنید. اگر همان پروفایل با هات‌اسپات تلفن وصل می‌شود و در Wi-Fi هتل مهلتش تمام می‌شود، متغیر مسیر است نه سرور. اگر همه‌جا شکست می‌خورد، متغیر پروفایل یا نقطه پایانی است. اگر فقط در ساعتی از روز شکست می‌خورد، مهر زمانی را ثبت کنید و پیش از هر فرضی درباره بار، آن را با رویدادهای سمت سرور مقایسه کنید.

برای سرویسی که مدیریت می‌کنید، مقایسه تعیین‌کننده این است که آیا تلاش اصلاً می‌رسد. اتصالی که به شنونده می‌رسد و سپس متوقف می‌شود به مرحله مذاکره تعلق دارد؛ اتصالی که هرگز در دید شنونده پیدا نمی‌شود مشکل انتقال یا حل نام است، و هیچ میزان تنظیم تلاش دوباره آن را جابه‌جا نمی‌کند. گزارش‌های سرور هم ورود ردشده را از حذف خاموش جدا می‌کنند، و این تفاوت میان اصلاح هویت و اصلاح دیوار آتش است.

نسخه کارخواه، نام پروفایل، زمان تلاش با منطقه زمانی آن و نخستین خطای سودمند را ثبت کنید نه خط آخر قطع شدن را. پیش از به اشتراک گذاشتن گزیده، کلیدها و مواد حامل اعتبارنامه را حذف کنید. سپس یک اصلاح معنادار انجام دهید و دوباره تلاش کنید، چون مهلت بلندتر فقط به عملیات کند مستندشده کمک می‌کند و برای نشانی اشتباه یا پورت مسدود هیچ کاری نمی‌کند.

مقالات مرتبط