خطاهای تایماوت پروکسی: اتصال معلق میماند و متوقف میشود
Updated:
تایماوت کلافهکنندهتر از سایر خطاهاست چون هیچ پیامی نمیدهد: نه اتصالی را رد میکند، نه رمزی میخواهد، فقط تا زمان انصراف نرمافزارتان سکوت برقرار است. معمولاً بستههای شما به مقصدی ارسال شده و ناپدید میشوند، یا پروکسی اتصال را میپذیرد اما بهموقع پاسخ نمیدهد. هدف این است که مشخص کنیم این سکوت در کدام مرحله رخ میدهد.
سه خروجی تایماوت که اندازهگیری کردیم
ما یک پروکسی آزمایشی راهاندازی کردیم که اتصالات TCP را میپذیرد اما هرگز پاسخ نمیدهد، سپس همان درخواست را با دو نوع محدودیت زمانی اجرا کردیم (آدرس به شکل 203.0.113.10:8080 و user123:pass456 بازنویسی شده است):
curl --connect-timeout 10 -x http://user123:[email protected]:8080 https://example.comخطایcurl: (28) Proxy CONNECT aborted due to timeoutرا برمیگرداند. این محدودیت فقط مرحله برقراری اتصال را پوشش میدهد.- جایگزین کردن آن با
-m 10(محدودیت روی کل فرایند انتقال) خطایcurl: (28) Connection timed out after 10002 millisecondsرا ایجاد میکند. - مرورگر Chromium متصل به همین پروکسی خطای
ERR_TIMED_OUTرا گزارش میدهد؛ ابزار بررسیکننده پروکسی نیز وضعیتtimeoutرا اعلام میکند.
علتها، بهترتیب احتمال وقوع
- شبکه شما پورت پروکسی را بیصدا مسدود میکند. وایفای ادارات، هتلها و دانشگاهها معمولاً بستههای ارسالی به پورتهای غیرمعمول را به جای رد اتصال، حذف میکنند؛ در نتیجه برای همیشه منتظر میمانید.
- مهلت زمانی (Timeout) در کد شما بسیار کوتاه است. یک پروکسی در کشوری دوردست برای دستتکانی (Handshake) به زمان بیشتری نیاز دارد؛ محدودیت 2 تا 3 ثانیهای میتواند ارتباط یک پروکسی کاملاً سالم را قطع کند.
- پروکسی یا مقصد بیش از حد شلوغ است. پروکسی اتصال را میپذیرد اما منتظر وبسایت میماند و مهلت شما پیش از دریافت پاسخ تمام میشود.
- آیپی اشتباه. یک اشتباه تایپی که به آدرسی بدون پاسخ ختم شود، به جای رد اتصال، سکوت به همراه دارد.
راهکارهای رفع مشکل به تفکیک محیط
- Windows/Chrome: همان پروکسی را با اینترنت دیتای گوشی امتحان کنید. اگر تایماوت برطرف شد، شبکه اصلی پورت را مسدود کرده است؛ راهنمای بررسی پروکسی و فایروال را بخوانید.
- مرورگرهای آنتیدیتکت: دکمه بررسی پروکسی معمولاً زمان انتظار ثابتی دارد. چند بار دیگر امتحان کنید و اگر فقط برخی پروفایلها با خطا مواجه میشوند، خط پروکسی آنها را با یک نمونه سالم مقایسه نمایید.
- Telegram: گیر کردن در وضعیت در حال اتصال پس از فعالسازی پروکسی نیز اغلب ناشی از تایماوت است؛ قبل از تغییر تنظیمات Telegram، پروکسی را در ابزار بررسی تست کنید.
- Python requests: مقدار
timeout=(10, 30)را تعیین کنید؛ یعنی 10 ثانیه برای اتصال و 30 ثانیه برای خواندن. خطاهایrequests.exceptions.ConnectTimeoutوrequests.exceptions.ReadTimeoutرا جداگانه دریافت کنید تا ببینید اتصال در کجا معلق میماند، و به جای تایماوت نامحدود، چند تلاش مجدد با فاصله زمانی اضافه نمایید. - curl: از
--connect-timeoutبرای سنجش مرحله اتصال به تنهایی و از-mبرای محدود کردن کل دستور استفاده کنید.
تایماوت یا فقط سرعت پایین؟
یک پروکسی کُند همچنان پاسخ میدهد، اما با تأخیر. ابزار تست سرعت پروکسی زمان واقعی پاسخدهی را نشان میدهد؛ اگر این زمان نزدیک به تایماوت نرمافزار شماست، محدودیت را افزایش دهید یا پروکسی را از کشوری نزدیکتر به مقصد انتخاب کنید. اگر تستهای مکرر هرگز پاسخی دریافت نکردند، با یک تایماوت واقعی روبرو هستید و ثبت تیکت به همراه نتیجه ابزار بررسی، اقدام بعدی خواهد بود.
گام به گام
- 1
تأیید تایماوت با ابزار بررسی
خط پروکسی را در بررسیکننده پروکسی جایگذاری کنید. نتیجه
timeoutیعنی هیچ پاسخی در مهلت مقرر نرسیده است. - 2
تغییر شبکه برای محدود کردن دامنه مشکل
دوباره با اینترنت موبایل امتحان کنید. اگر کار کرد، مشکل از شبکه قبلی یا فایروال آن است.
- 3
اندازهگیری زمان پاسخدهی
ابزار تست سرعت پروکسی را اجرا کنید تا ببینید پروکسی کُند است یا پاسخی نمیدهد.
- 4
تنظیم تایماوت و تلاشهای مجدد در نرمافزار
محدودیت اتصال را به حدود 10 ثانیه افزایش دهید، تلاش مجدد اضافه کرده و تسک را دوباره اجرا کنید.
پرسشهای متداول
آیا تایماوت پروکسی به معنی از کار افتادن آن است؟
لزوماً خیر. بسیاری از تایماوتها به دلیل مسدود شدن پورت توسط شبکه کاربر رخ میدهند. قبل از نتیجهگیری، آن را از یک شبکه دیگر تست کنید.
چه میزان تایماوت برای پروکسیها در کد تنظیم کنم؟
حدود 10 ثانیه برای اتصال و 30 ثانیه برای خواندن، نقطه شروع مناسبی است. پروکسیهای دورتر یا صفحات سنگین ممکن است به زمان بیشتری نیاز داشته باشند.
چرا فقط برخی وبسایتها از طریق پروکسی دچار تایماوت میشوند؟
در این حالت پروکسی سالم است و مقصد کُند بوده یا درخواست را مسدود میکند. اگر سایت به جای سکوت، خطای 502 میدهد، راهنمای 502 Bad Gateway را ببینید.
تفاوت تایماوت با رد اتصال چیست؟
رد اتصال فوراً بازمیگردد، اما تایماوت تا پایان مهلت زمانی منتظر میماند. راهنمای سرور پروکسی اتصالات را رد میکند را ببینید.
پروکسی نزدیک به بازار هدف خود را انتخاب کنید
VinaProxy آیپیهایی در ویتنام، آمریکا، ژاپن، کره جنوبی، سنگاپور، بریتانیا و هنگکنگ ارائه میدهد تا به بازار هدف خود نزدیک بمانید.
مشاهده قیمتها