مهلتهای پراکسی در curl: یافتن مرحلهٔ ناموفق
اتصال به پراکسی، مذاکرهٔ تونل، TLS و پاسخ متوقفشده را جدا کنید تا مهلتهای curl به تشخیص مشکل کمک کنند.
آخرین عملیات کاملشده را در خروجی تفصیلی curl پیدا کنید. «به پراکسی وصل شد، اما پاسخ CONNECT نیامد» مشکل را بسیار دقیقتر از «مهلت پراکسی تمام شد» محدود میکند.
از درخواستی با محدودیت زمانی استفاده کنید و نمونهٔ محلی را با پراکسی HTTP خود جایگزین کنید؛ در فهرست پروکسیهای HTTP میتوانید نقاط اتصال دیگری برای مقایسه بیابید:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/--connect-timeout 5 یک بودجهٔ زمانی مشترک برای برقراری اتصال، شامل جستوجوها و دستدهیهای لازم، تعیین میکند؛ نه پنج ثانیه برای هر مرحله. --max-time 15 کل عملیات، از جمله زمان انتقال پس از برقراری اتصال، را محدود میکند.
| پیشرفت کجا متوقف میشود | سپس چه چیزی را بررسی کنید |
|---|---|
| اتصالی به پراکسی برقرار نشده | حل نام میزبان پراکسی، درگاه شنونده، مسیریابی و سیاست دیوارهٔ آتش. |
| پراکسی متصل است؛ پاسخی برای تونل نیست | بار پراکسی، مذاکرهٔ احراز هویت، سیاست دسترسی و دسترسپذیری مقصد از پراکسی. |
| تونل پذیرفته شده؛ TLS ناتمام است | دسترسپذیری مقصد، مذاکرهٔ TLS و رهگیری مدیریتشدهٔ ترافیک. |
| سرآیندهای مقصد میرسند؛ بدنه متوقف میشود | رفتار انتقال سرور مبدأ، بافرسازی واسطهها و اینکه آیا برنامه عمداً ساکت است. |
برای ترتیب دستدهیها، چگونگی حمل HTTPS توسط CONNECT را ببینید. توقف نزدیک بودجهٔ اتصال به مرحلهٔ برقراری اشاره دارد؛ توقف دیرتر در سقف کلی به انتقال ناتمام اشاره میکند. ترتیب را همراه با زمان بررسی کنید؛ زمان بهتنهایی مؤلفه را مشخص نمیکند. متن گزارشها میان ساختهای curl متفاوت است و بازبودن درگاه TCP ثابت نمیکند CONNECT کار میکند.
یک طرف را ثابت نگه دارید
همان مقصد را از یک مسیر مستقیم مجاز مقایسه کنید:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/سپس مقصد بیخطر دیگری را از همان پراکسی مقایسه کنید. اگر فقط یک مقصد ناموفق است، مسیر یا سیاست دسترسی آن را بررسی کنید. اگر همه در یک گام برقراری متوقف میشوند، مسیر مشترک پراکسی را بررسی کنید. زمان شروع، نقطهٔ اتصال، مقصد و آخرین مرحلهٔ کاملشده را ذخیره کنید؛ پیش از اشتراک گزارشها اطلاعات ورود، توکنها، کوکیها و نامهای خصوصی را حذف کنید.
وقتی اتصال باز میماند اما پیشرفت مفیدی ندارد
انتقال فایل ممکن است افزون بر سقف برقراری و کل زمان، به آستانهٔ سرعت پایین نیاز داشته باشد:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 60 --speed-limit 100 --speed-time 20 https://example.com/اگر نرخ انتقال پایدار بهمدت 20 ثانیه زیر 100 بایت در ثانیه بماند، این تنظیم عملیات را قطع میکند و همزمان سقف کلی 60 ثانیه را نگه میدارد. مقادیر را متناسب با کار انتخاب کنید. جریان رویداد ممکن است در سکوتهای طولانی سالم باشد؛ بنابراین قاعدهٔ دانلود میتواند آن را بهاشتباه قطع کند.
افزایش همهٔ سقفها بروز نشانه را عقب میاندازد. تلاشهای مجدد و فوری میتوانند اتصالهای بیشتری به مسیر پربار اضافه کنند. با چند مقایسهٔ سنجیده عیبیابی کنید؛ سیاست بعدی تلاش مجدد برنامه به بودجهٔ کلی مستقل و بررسی ایمنی تکرار عملیات نیاز دارد.