curl से HTTP प्रॉक्सी की जाँच करें
डिवाइस की वैश्विक प्रॉक्सी सेटिंग बदले बिना सीमित समय वाले curl परीक्षण से प्रॉक्सी कनेक्शन, HTTPS टनल, प्रतिक्रिया की स्थिति और बायपास नियम जाँचें।
127.0.0.1:8080 की जगह अपनी सेवा या HTTP प्रॉक्सी सूची का कोई एंडपॉइंट रखें और इसे किसी हानिरहित HTTPS गंतव्य के लिए चलाएँ:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/लूपबैक पता आपके अपने कंप्यूटर पर मौजूद लिसनर को दर्शाता है। यह कमांड उसे स्पष्ट रूप से चुनता है, इस कॉल के लिए curl की बायपास सूची खाली करता है और कनेक्शन बनाने के लिए पाँच सेकंड तथा कुल पंद्रह सेकंड देता है। यह ब्राउज़र और सिस्टम की प्रॉक्सी सेटिंग नहीं बदलता।
अगर आपका शेल curl को किसी दूसरे प्रोग्राम का उपनाम बनाता है, तो curl की वास्तविक निष्पादन योग्य फ़ाइल इस्तेमाल करें; curl --version बिल्ड की पहचान करता है। अगर लिसनर को खुद TLS चाहिए, तो उसके दस्तावेज़ों में दी गई प्रॉक्सी URL स्कीम इस्तेमाल करें।
सफलता के एक संकेत की जगह चार परिणाम पढ़ें
- चुनी गई प्रॉक्सी से कनेक्शन: पता और पोर्ट पहुँच में हैं।
- CONNECT स्वीकार हुआ: प्रॉक्सी ने HTTPS गंतव्य तक टनल खोल दी।
- गंतव्य का प्रमाणपत्र सत्यापित हुआ: अपेक्षित भरोसा जाँचों के साथ TLS पूरा हुआ।
- गंतव्य की प्रतिक्रिया मिली: अनुप्रयोग को चाहिए परिणाम के लिए उसकी स्थिति और सामग्री देखें।
काम करती टनल के बाद भी गंतव्य 403 या 429 दे सकता है। HTTP त्रुटि प्रतिक्रिया मिलने के बाद curl सफलतापूर्वक समाप्त भी हो सकता है, इसलिए प्रतिक्रिया की स्थिति और curl का त्रुटि परिणाम, दोनों दर्ज करें। सिर्फ़ TCP कनेक्शन या CONNECT की सफलता पर्याप्त नहीं है।
बार-बार तुलना के लिए संक्षिप्त परिणाम
Unix जैसे शेल में प्रतिक्रिया का मुख्य भाग छोड़ दें और टनल की स्थिति, गंतव्य की स्थिति, कनेक्शन का दूसरा सिरा तथा बीता समय प्रिंट करें:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/http_connect टनल की प्रतिक्रिया बताता है; http_code अंतिम HTTP प्रतिक्रिया बताता है। remote_ip curl के कनेक्शन का दूसरा सिरा है, प्रॉक्सी के एग्ज़िट पते का स्वतंत्र मापन नहीं। दूसरे सिस्टम पर /dev/null बदलें या प्रतिक्रिया का मुख्य भाग रखें।
अगर परीक्षण विफल हो, तो कनेक्शन बनाने या डेटा भेजने का विफल चरण खोजें और जहाँ उस रास्ते की अनुमति हो, उसी गंतव्य से सीधे कनेक्शन की तुलना करें:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/--noproxy '*' प्रॉक्सी को बायपास करता है। दोनों रास्तों में प्रमाणपत्र सत्यापन विफल होना किसी साझा भरोसे की समस्या की ओर संकेत करता है; सीधे कनेक्शन की सफलता के साथ CONNECT का अस्वीकार होना प्रॉक्सी प्रमाणीकरण या नीति की ओर संकेत करता है। विस्तृत आउटपुट साझा करने से पहले उसकी समीक्षा करें, क्योंकि उसमें पहचान बताने वाली जानकारी हो सकती है।
परिणाम के साथ एंडपॉइंट, लक्ष्य और समय-मुद्रा रखें। इससे पता चलता है कि उस अनुरोध में क्या काम किया; भविष्य की उपलब्धता, निजता और लोड के दौरान प्रदर्शन के लिए अलग साक्ष्य चाहिए।