Niyə curl uzaq URL əvəzinə localhost-a qoşulur
VPN-i günahlandırmadan əvvəl miras qalmış proksini, standart curlrc faylını və həqiqi hədəfi ayırın. Üç nəzarətli işə salma TLS yoxlamasını açıq saxlayır.
Əgər curl verdiyiniz URL-dən asılı olmayaraq localhost-a qoşulmağa çalışırsa, VPN səhv başlanğıc nöqtəsidir. Lokal HTTP və ya SOCKS proksisi nəzərdə tutulan ilk bağlantı ola bilər, hətta istədiyiniz xidmət tamam başqa yerdə olsa belə. Əgər həmin proksi artıq işləmirsə, localhost cəhdi curl hədəfə çatmadan uğursuz olur. Proksinin cavabı da hədəfin cavab verdiyinin sübutu deyil.
Bu addımları ardıcıllıqla yerinə yetirin və ilk bağlantı cəhdini dəyişən ilk addımda dayanın.
Əvvəlcə curl-un öz proksi qaydalarını oxuyun
curl protokola xas proksi dəyişənlərini oxuyur, məsələn https_proxy və HTTPS_PROXY, həmçinin protokola xas dəyər tətbiq olunmadıqda ALL_PROXY. curl-u həqiqətən işə salan shell-in, xidmətin və ya tapşırığın mühitini yoxlayın, cari terminalınızdakını deyil. CI işi, systemd unit-i və interaktiv shell üç fərqli dəst miras ala bilər. Görünən shell-dən təxmin etmək bu araşdırmanın bütün günortanı itirməsinin səbəbidir.
Bir istisnanı yadda saxlamağa dəyər. curl http_proxy dəyişənini yalnız kiçik hərflərlə qəbul edir; böyük hərfli HTTP_PROXY nəzərə alınmır, buna görə də eyni mühit digər alətlərdə fərqli davranır.
Dəyərləri məxfi oxuyun, çünki proksi URL-i çox vaxt etimadnamə daşıyır.
Sonra standart curl konfiqurasiya faylını proksi və ya bağlantı üzərində yazmalar üçün yoxlayın və həqiqətən hansı icra faylını işə saldığınızı təsdiqləyin. Shell alias-ı, funksiya və ya wrapper skript əmr sətrinizdə heç vaxt görünməyən seçimlər əlavə edə bilər.
TLS açıq olmaqla üç çağırışı müqayisə edin
Üç işə salmanın hamısı üçün bir təsdiqlənmiş diaqnostik hədəf və eyni binar fayldan istifadə edin.
curl -v https://service.corp.example/status
curl -q -v https://service.corp.example/status
curl -q --proxy '' -v https://service.corp.example/status
-q standart curlrc faylını sıradan çıxarır və işləməsi üçün sətrin ilk parametri olmalıdır. O, proksi mühit dəyişənlərini silmir, bu da bunu gözləyənləri təəccübləndirir. Üçüncü forma boş --proxy dəyəri əlavə edir və yalnız həmin çağırış üçün mühitin tələb etdiyi proksini üzərinə yazır. Hər çıxışda ilk bağlantı cəhdini müqayisə edin, son status kodunu deyil.
Ətraflı çıxış başlıqları, tokenləri və proksi etimadnamələrini aşkara çıxara bilər, ona görə onu lokal saxlayın və paylaşmadan əvvəl parçaları oxuyun.
Hər nəticə nəyi istisna edir
Əgər standart konfiqurasiyanı buraxmaq bağlantını dəyişirsə, mənbə konfiqurasiya faylıdır. Əgər miras qalmış proksini açıq şəkildə söndürmək onu dəyişirsə, mənbə mühit dəyişənidir. Əgər heç biri onu dəyişmir və localhost yenə görünürsə, əmr sətri bağlantı üzərində yazmalarına, host adı həllinə və seçilmiş icra faylına baxın. Bunların hər birinin fərqli düzəlişi var və heç biri marşrut dəyişikliyi deyil.
Fərdi kitabxana yükləməsi və ya yeridilmiş şəbəkə davranışı daha sonrakı təbəqədir və tək bir mühit dəyişəni onun sübutu deyil.
Proksi qərarını VPN-dən ayrı saxlayın
curl birbaşa hədəf seçdikdən sonra əməliyyat sistemi həmin bağlantını yenə də marşrutlaşdırır. Tətbiq proksisini söndürmək VPN-in marşrutunu və ya filtrləmə siyasətini söndürmür. Birbaşa giriş müqayisələrini yalnız bu diaqnostikaya icazə verilən yerdə aparın. Siyasəti səssizcə yan keçən test etibarlı nəticə deyil, hadisədir.
Lokal proksi tələb olunursa, onun parametrlərini silmək əvəzinə xidmətini və ünvanını bərpa edin.
Yalnız seçilmiş şəxsi hədəflər birbaşa girişə ehtiyac duyursa, dar bir təsdiqlənmiş istisna əlavə edin və proksini qalan hər şey üçün saxlayın. Seçilmiş yoldan ilk xətanı qoruyun, çünki localhost imtinası, proksi CONNECT rəddi, sertifikat uğursuzluğu və avtorizasiya xətası dörd fərqli mərhələni göstərir.