Back to Blog

प्रॉक्सी प्रमाणीकरण समस्याओं को हल करने के लिए संपूर्ण गाइड

प्रॉक्सी 407 क्यों दिखाता है या कनेक्शन क्यों काटता है? प्रमाणीकरण त्रुटियों के कारणों का विश्लेषण करें और उन्हें ठीक करने का तरीका बताएं।

📅December 10, 2025
```html

प्रॉक्सी प्रमाणीकरण समस्याओं का समाधान: संपूर्ण गाइड

कोड 407, कनेक्शन रीसेट, कनेक्शन टाइमआउट - क्या ये लक्षण परिचित हैं? प्रॉक्सी प्रमाणीकरण त्रुटियाँ लगातार सामने आती हैं, लेकिन 90% मामलों में वे कुछ ही मिनटों में हल हो जाती हैं। आइए कारणों को समझें और निदान तथा सुधार के विशिष्ट तरीके दिखाएँ।

प्रॉक्सी प्रमाणीकरण कैसे काम करता है

त्रुटि खोजने से पहले, तंत्र को समझना महत्वपूर्ण है। प्रॉक्सी सर्वर प्रमाणीकरण के दो मुख्य तरीकों का उपयोग करते हैं:

लॉगिन और पासवर्ड द्वारा प्रमाणीकरण (Basic Auth) - क्लाइंट बेस64 में एन्कोड किए गए क्रेडेंशियल्स के साथ Proxy-Authorization हेडर भेजता है। यह HTTP प्रॉक्सी के लिए मानक विधि है।

आईपी द्वारा प्रमाणीकरण (IP Whitelist) - सर्वर क्लाइंट के आईपी पते की व्हाइटलिस्ट में जाँच करता है। कोई लॉगिन नहीं - यदि आपका आईपी सूची में है, तो एक्सेस खुला है।

SOCKS5 प्रॉक्सी के लिए योजना समान है, लेकिन प्रमाणीकरण HTTP हेडर के बजाय प्रोटोकॉल स्तर पर होता है।

सामान्य त्रुटियाँ और उनका अर्थ

त्रुटि क्या मतलब है संभावित कारण
407 Proxy Authentication Required प्रॉक्सी प्रमाणीकरण की मांग कर रहा है क्रेडेंशियल प्रदान नहीं किए गए या गलत हैं
403 Forbidden पहुँच निषिद्ध है आईपी व्हाइटलिस्ट में नहीं है, सदस्यता समाप्त हो गई है
Connection reset कनेक्शन रीसेट हो गया गलत प्रोटोकॉल, फ़ायरवॉल द्वारा अवरुद्ध
Connection timeout कनेक्शन टाइमआउट गलत होस्ट/पोर्ट, नेटवर्क समस्याएँ
SOCKS5 auth failed SOCKS प्रमाणीकरण विफल गलत डेटा या असंगत विधि

क्रेडेंशियल संबंधी समस्याएँ

त्रुटि 407 का सबसे आम कारण टाइपो या डेटा में भ्रम है। जाँच करें:

  • स्पेस के साथ कॉपी करना - कंट्रोल पैनल से कॉपी करते समय अक्सर स्ट्रिंग की शुरुआत या अंत में अदृश्य स्पेस शामिल हो जाते हैं
  • केस संवेदनशीलता - लॉगिन और पासवर्ड केस-संवेदनशील होते हैं
  • खातों के बीच भ्रम - व्यक्तिगत खाते के डेटा और प्रॉक्सी के लिए डेटा आमतौर पर अलग होते हैं
  • समाप्त अवधि - सदस्यता समाप्त हो गई है, लेकिन डेटा औपचारिक रूप से मान्य है

त्वरित जाँच - curl के माध्यम से लॉगिन करने का प्रयास करें:

curl -v -x http://user:password@proxy.example.com:8080 https://httpbin.org/ip

-v फ्लैग कनेक्शन की पूरी प्रक्रिया दिखाएगा, जिसमें प्रॉक्सी सर्वर का उत्तर भी शामिल है।

आईपी व्हाइटलिस्टिंग: छिपी हुई समस्याएँ

आईपी प्रमाणीकरण सुविधाजनक लगता है - कोड में पासवर्ड पास करने की आवश्यकता नहीं है। लेकिन इसमें अपनी जाल हैं:

प्रदाता का डायनामिक आईपी। घरेलू इंटरनेट प्रदाता राउटर के पुन: कनेक्शन या शेड्यूल के आधार पर आईपी बदलते हैं। कल काम कर रहा था, आज - 403।

NAT और साझा आईपी। यदि आप कॉर्पोरेट NAT के पीछे हैं, तो आपका बाहरी आईपी दर्जनों सहकर्मियों द्वारा साझा किया जाता है। ऐसे आईपी को व्हाइटलिस्ट में जोड़ना सुरक्षा में सेंध है।

वीपीएन और क्लाउड सर्वर। आपके वीपीएस का आईपी माइग्रेशन या रीबूट पर बदल सकता है। AWS, Google Cloud और अन्य प्रदाता बिना इलास्टिक/स्टैटिक आईपी के आईपी की स्थिरता की गारंटी नहीं देते हैं।

अपना वर्तमान बाहरी आईपी कैसे जानें:

curl https://api.ipify.org
# या
curl https://ifconfig.me

परिणाम की तुलना प्रॉक्सी प्रदाता की व्हाइटलिस्ट में मौजूद आईपी से करें।

पासवर्ड में एन्कोडिंग और विशेष वर्ण

यदि पासवर्ड में विशेष वर्ण (@, :, #, %) हैं, तो वे प्रॉक्सी URL प्रारूप को तोड़ सकते हैं। @ वर्ण विशेष रूप से पेचीदा है - यह क्रेडेंशियल्स और होस्ट को अलग करता है।

समस्या का उदाहरण: पासवर्ड p@ss:word को स्ट्रिंग http://user:p@ss:word@proxy.com:8080 में गलत तरीके से पार्स किया जाएगा।

समाधान - विशेष वर्णों का URL-एन्कोडिंग:

वर्ण एन्कोडिंग
@ %40
: %3A
# %23
% %25
/ %2F

पासवर्ड p@ss:word बदलकर p%40ss%3Aword हो जाता है।

Python में एन्कोडिंग स्वचालित रूप से की जाती है:

from urllib.parse import quote

password = "p@ss:word"
encoded_password = quote(password, safe='')
print(encoded_password)  # p%40ss%3Aword

चरण-दर-चरण निदान

जब प्रॉक्सी काम नहीं करता है, तो क्रम में जाँच करें:

चरण 1: सर्वर की उपलब्धता की जाँच करें

# TCP कनेक्शन की जाँच
nc -zv proxy.example.com 8080

# या telnet के माध्यम से
telnet proxy.example.com 8080

यदि कनेक्शन स्थापित नहीं होता है - समस्या नेटवर्क स्तर पर है: गलत होस्ट, पोर्ट या फ़ायरवॉल।

चरण 2: एप्लिकेशन के बिना प्रमाणीकरण की जाँच करें

# HTTP-प्रॉक्सी
curl -v --proxy-user "username:password" -x http://proxy.example.com:8080 https://httpbin.org/ip

# SOCKS5-प्रॉक्सी
curl -v --proxy-user "username:password" -x socks5://proxy.example.com:1080 https://httpbin.org/ip

यदि curl काम करता है, लेकिन आपका एप्लिकेशन नहीं - तो समस्या एप्लिकेशन के कोड या कॉन्फ़िगरेशन में है।

चरण 3: प्रोटोकॉल की जाँच करें

एक आम गलती - SOCKS प्रॉक्सी के लिए HTTP क्लाइंट या इसके विपरीत का उपयोग करना। प्रॉक्सी प्रदाता से प्रॉक्सी का प्रकार स्पष्ट करें:

  • HTTP/HTTPS प्रॉक्सी - हेडर के माध्यम से काम करते हैं, पोर्ट आमतौर पर 8080, 3128, 8888 होते हैं
  • SOCKS4/SOCKS5 - बाइनरी प्रोटोकॉल, पोर्ट आमतौर पर 1080, 1081 होते हैं

चरण 4: प्रदाता के लॉग की जाँच करें

कई प्रदाता व्यक्तिगत खाते में कनेक्शन लॉग दिखाते हैं। वहां आप देख सकते हैं कि अनुरोध सर्वर तक पहुंचा या नहीं, कौन सा क्रेडेंशियल भेजा गया था, और क्यों अस्वीकार किया गया।

विभिन्न भाषाओं के लिए कोड उदाहरण

Python (requests)

import requests
from urllib.parse import quote

# पासवर्ड में विशेष वर्णों को एस्केप करें
username = "user123"
password = quote("p@ss:word", safe='')

proxies = {
    "http": f"http://{username}:{password}@proxy.example.com:8080",
    "https": f"http://{username}:{password}@proxy.example.com:8080"
}

try:
    response = requests.get(
        "https://httpbin.org/ip",
        proxies=proxies,
        timeout=10
    )
    print(response.json())
except requests.exceptions.ProxyError as e:
    print(f"प्रॉक्सी त्रुटि: {e}")

Python (अतुल्यकालिक अनुरोधों के लिए aiohttp)

import aiohttp
import asyncio
from aiohttp_socks import ProxyConnector

async def fetch_with_proxy():
    # SOCKS5 के लिए
    connector = ProxyConnector.from_url(
        'socks5://user:password@proxy.example.com:1080'
    )
    
    async with aiohttp.ClientSession(connector=connector) as session:
        async with session.get('https://httpbin.org/ip') as response:
            return await response.json()

# HTTP-प्रॉक्सी के लिए
async def fetch_with_http_proxy():
    async with aiohttp.ClientSession() as session:
        async with session.get(
            'https://httpbin.org/ip',
            proxy='http://user:password@proxy.example.com:8080'
        ) as response:
            return await response.json()

Node.js (axios)

const axios = require('axios');
const HttpsProxyAgent = require('https-proxy-agent');

const proxyUrl = 'http://user:password@proxy.example.com:8080';
const agent = new HttpsProxyAgent(proxyUrl);

axios.get('https://httpbin.org/ip', {
    httpsAgent: agent
})
.then(response => console.log(response.data))
.catch(error => {
    if (error.response?.status === 407) {
        console.log('प्रॉक्सी प्रमाणीकरण त्रुटि');
    }
});

PHP (cURL)

$ch = curl_init();

curl_setopt_array($ch, [
    CURLOPT_URL => 'https://httpbin.org/ip',
    CURLOPT_PROXY => 'proxy.example.com:8080',
    CURLOPT_PROXYUSERPWD => 'user:password',
    CURLOPT_PROXYTYPE => CURLPROXY_HTTP,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 10
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch)) {
    echo 'त्रुटि: ' . curl_error($ch);
} elseif ($httpCode === 407) {
    echo 'प्रॉक्सी प्रमाणीकरण त्रुटि';
} else {
    echo $response;
}

curl_close($ch);

Selenium (Python)

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# प्रमाणीकरण की आवश्यकता वाले प्रॉक्सी के लिए एक प्लगइन की आवश्यकता होती है
# सरल विकल्प - IP-व्हाइटलिस्टिंग वाले प्रॉक्सी का उपयोग करें

chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://proxy.example.com:8080')

# एक्सटेंशन के माध्यम से प्रमाणीकरण के लिए
# (manifest.json और background.js बनाना आवश्यक है)

driver = webdriver.Chrome(options=chrome_options)
driver.get('https://httpbin.org/ip')

सलाह: Selenium उन प्रॉक्सी के साथ खराब काम करता है जिन्हें लॉगिन/पासवर्ड की आवश्यकता होती है। ब्राउज़र ऑटोमेशन के लिए, IP प्रमाणीकरण वाले रेजिडेंशियल प्रॉक्सी का उपयोग करना बेहतर है - यह प्रमाणीकरण पॉप-अप समस्याओं से बचाएगा।

विभिन्न प्रकार के प्रॉक्सी की विशेषताएँ

प्रमाणीकरण समस्याएँ प्रॉक्सी के प्रकार पर निर्भर कर सकती हैं:

डेटासेंटर प्रॉक्सी आमतौर पर स्थिर क्रेडेंशियल्स का उपयोग करते हैं। यदि वे काम करना बंद कर देते हैं - तो वैधता अवधि या ट्रैफिक सीमा की जाँच करें।

रेजिडेंशियल प्रॉक्सी अक्सर रोटेशन का उपयोग करते हैं। क्रेडेंशियल्स में लॉगिन में सत्र पैरामीटर शामिल हो सकते हैं (उदाहरण के लिए, user-session-abc123)। गलत प्रारूप त्रुटियों का कारण बनता है।

मोबाइल प्रॉक्सी आईपी बदलने के लिए अतिरिक्त मापदंडों की मांग कर सकते हैं। प्रदाता के दस्तावेज़ों का अध्ययन करें - रोटेशन अनुरोधों का प्रारूप अलग होता है।

त्वरित निदान के लिए चेकलिस्ट

भविष्य की समस्याओं के लिए इस सूची को सहेजें:

  1. क्या प्रॉक्सी होस्ट और पोर्ट पर पिंग/टेलनेट पास होता है?
  2. क्या क्रेडेंशियल बिना अतिरिक्त स्पेस के कॉपी किए गए हैं?
  3. क्या पासवर्ड में विशेष वर्ण एन्कोड किए गए हैं?
  4. क्या सही प्रोटोकॉल (HTTP बनाम SOCKS) का उपयोग किया जा रहा है?
  5. क्या IP-ऑथेंटिकेशन (यदि उपयोग किया जाता है) में IP व्हाइटलिस्ट में जोड़ा गया है?
  6. क्या सदस्यता सक्रिय है और क्या सीमा समाप्त हो गई है?
  7. क्या समान डेटा के साथ curl काम करता है?

निष्कर्ष

अधिकांश प्रॉक्सी प्रमाणीकरण त्रुटियाँ बुनियादी चीजों की जाँच करने से हल हो जाती हैं: क्रेडेंशियल्स की शुद्धता, विशेष वर्णों का एन्कोडिंग, और IP व्हाइटलिस्ट के साथ IP का मिलान। यदि सरल जाँचों से मदद नहीं मिलती है - तो विस्तृत निदान के लिए -v फ्लैग के साथ curl का उपयोग करें।

पार्सिंग और ऑटोमेशन कार्यों के लिए, जहां कनेक्शन की स्थिरता महत्वपूर्ण है, लचीली प्रमाणीकरण प्रणाली वाले रेजिडेंशियल प्रॉक्सी का उपयोग करना अधिक सुविधाजनक है - अधिक जानकारी proxycove.com पर देखें।

```