Cari operasi terakhir yang selesai dalam keluaran verbose curl. “Terhubung ke proxy, tetapi tidak ada respons CONNECT” mempersempit masalah jauh lebih baik daripada “proxy timeout”.

Gunakan permintaan dengan batas waktu dan ganti contoh lokal dengan proxy HTTP Anda; daftar proxy HTTP menyediakan endpoint alternatif untuk perbandingan:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/

--connect-timeout 5 memberi satu anggaran waktu bersama untuk pembentukan koneksi, termasuk pencarian dan handshake yang berlaku; bukan lima detik untuk setiap tahap. --max-time 15 membatasi seluruh operasi, termasuk waktu transfer setelah koneksi terbentuk.

Di mana kemajuan berhentiApa yang diperiksa berikutnya
Tidak terhubung ke proxyResolusi nama host proxy, port yang mendengarkan, perutean, dan kebijakan firewall.
Proxy terhubung; tidak ada respons terowonganBeban proxy, negosiasi autentikasi, kebijakan akses, dan keterjangkauan tujuan dari proxy.
Terowongan diterima; TLS belum selesaiKeterjangkauan tujuan, negosiasi TLS, dan intersepsi yang dikelola.
Header tujuan tiba; isi macetPerilaku transfer server asal, buffering perantara, dan apakah aplikasi sengaja diam.

Urutan handshake dijelaskan dalam cara CONNECT membawa HTTPS. Berhenti mendekati anggaran koneksi mengarah ke pembentukan koneksi; berhenti lebih lambat pada batas keseluruhan mengarah ke transfer yang belum selesai. Gunakan urutan bersama waktu; waktu saja tidak mengidentifikasi komponen. Teks log berbeda antar-build curl, dan port TCP terbuka tidak membuktikan CONNECT berfungsi.

Pertahankan satu sisi tetap sama

Bandingkan tujuan yang sama melalui rute langsung yang diizinkan:

curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/

Lalu bandingkan tujuan lain yang tidak berbahaya melalui proxy yang sama. Jika hanya satu tujuan gagal, periksa rute atau kebijakan tujuan tersebut. Jika semua berhenti pada langkah pembentukan yang sama, periksa jalur proxy bersama. Simpan waktu mulai, endpoint, tujuan, dan tahap terakhir yang selesai; hapus kredensial, token, cookie, dan nama privat sebelum membagikan log.

Saat koneksi tetap terbuka tanpa kemajuan berguna

Transfer berkas mungkin memerlukan batas kecepatan rendah selain batas pembentukan dan waktu total:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 60 --speed-limit 100 --speed-time 20 https://example.com/

Ini membatalkan operasi jika laju transfer berkelanjutan tetap di bawah 100 byte per detik selama 20 detik, sambil mempertahankan batas total 60 detik. Pilih nilai sesuai beban kerja. Aliran peristiwa dapat tetap sehat saat lama tidak mengirim data, sehingga aturan unduhan dapat keliru menghentikannya.

Menaikkan semua batas menunda gejala. Percobaan ulang langsung dan berulang dapat menambah koneksi pada jalur yang kelebihan beban. Diagnosis dengan beberapa perbandingan terencana; kebijakan percobaan ulang aplikasi selanjutnya memerlukan anggaran total sendiri serta pertimbangan apakah pengulangan operasi aman.

Artikel terkait