🎯 कस्टमाइज़ करने योग्य, डिटेक्शन-प्रतिरोधी क्लाउड ब्राउज़र जो स्व-विकसित Chromium द्वारा संचालित है, वेब क्रॉलर और एआई एजेंट्स के लिए डिज़ाइन किया गया। 👉अभी आज़माएं
वापस ब्लॉग पर

एक पाइथन प्रॉक्सी सर्वर बनाना: चरण-दर-चरण गाइड

Sophia Martinez
Sophia Martinez

Specialist in Anti-Bot Strategies

28-Nov-2025
html Copy
<div style="background-color: #f3f4f6; padding: 24px 40px; border-radius: 10px;">
  <strong style="font-size: 18px;">
    झलक लें
  </strong>
  <p style="margin-bottom: 24px;">
    अपने स्वयं के प्रॉक्सी सर्वर को पायथन में बनाकर नेटवर्क प्रोग्रामिंग की बुनियादी बातों को समझें। उत्पादन-ग्रेड स्क्रैपिंग के लिए, Scrapeless Proxies में स्विच करें - तेज, विश्वसनीय और सस्ती।
  </p>
  <div style="text-align: center; margin-top: 10px;">
    <a href="https://app.scrapeless.com/passport/login?utm_source=official&utm_medium=blog&utm_campaign=python-proxy-server
" style="background: #12A594; color: #fff; padding: 10px 28px; border-radius: 38px; text-decoration: none; display: inline-block;">
      अभी लॉगिन करें - मुफ्त ट्रायल
    </a>
  </div>
</div>

एक प्रॉक्सी सर्वर उस अंतराल के रूप में कार्य करता है जहां क्लाइंट अन्य सर्वरों से संसाधनों की मांग करते हैं। पायथन में एक सरल प्रॉक्सी सर्वर बनाना नेटवर्क प्रोग्रामिंग, सॉकेट संचार, और HTTP प्रोटोकॉल के मूलभूत सिद्धांतों को समझने का बेहतरीन तरीका है। इस गाइड में हम आपको पायथन के अंतर्निहित `socket` और `threading` मॉड्यूल का उपयोग करके एक बुनियादी, मल्टी-थ्रेडेड HTTP प्रॉक्सी सर्वर बनाने की प्रक्रिया के माध्यम से ले जाएंगे।

## पायथन प्रॉक्सी सर्वर क्या है?

एक पायथन प्रॉक्सी सर्वर एक स्क्रिप्ट है जो पायथन की नेटवर्किंग क्षमताओं का उपयोग करके क्लाइंट की मांगों को एक गंतव्य सर्वर की ओर राउट करती है और प्रतिक्रिया को वापस क्लाइंट तक पहुंचाती है। जबकि एक साधारण स्क्रिप्ट व्यावसायिक सेवाओं के उन्नत फीचर्स प्रदान नहीं करती—जैसे IP घुमाव, सत्र निरंतरता, या भूस्थान लक्ष्यीकरण—यह इन सिस्टमों के काम करने के तरीके की बुनियादी समझ प्रदान करती है।

हम जो प्रॉक्सी बनाएंगे वह **फॉरवर्ड प्रॉक्सी** है, इसका मतलब है कि यह एक क्लाइंट (जैसे एक वेब ब्राउज़र) और एक गंतव्य सर्वर (जैसे एक वेबसाइट) के बीच होता है। यह मूल HTTP अनुरोध को संभालेगा:
1.  आने वाले क्लाइंट कनेक्शन के लिए सुनना।
2.  क्लाइंट के अनुरोध को प्राप्त करना।
3.  अनुरोध हेडर से गंतव्य होस्ट और पोर्ट को निकालना।
4.  गंतव्य सर्वर से एक नया कनेक्शन स्थापित करना।
5.  क्लाइंट के अनुरोध को गंतव्य पर अग्रेषित करना।
6.  गंतव्य सर्वर से प्रतिक्रिया प्राप्त करना।
7.  प्रतिक्रिया को मूल क्लाइंट को वापस भेजना।

## पायथन में HTTP प्रॉक्सी सर्वर कैसे लागू करें

नीचे दिया गया कोड एक पूर्ण, कार्यात्मक HTTP प्रॉक्सी सर्वर का उदाहरण प्रस्तुत करता है। हम नेटवर्क संचार के लिए `socket` मॉड्यूल और बहु-क्लाइंट कनेक्शन को समवर्ती रूप से संभालने के लिए `threading` मॉड्यूल का उपयोग करेंगे, जो नेटवर्क सर्वर डिज़ाइन में एक सामान्य प्रथा है [1]।

### पूर्ण पायथन प्रॉक्सी सर्वर कोड

यह स्क्रिप्ट स्थानीय रूप से पोर्ट 8888 पर चलाने के लिए डिज़ाइन की गई है और आने वाले HTTP अनुरोधों को संभालेगी।

```python
import socket
import threading

def extract_host_port_from_request(request):
    """
    HTTP अनुरोध हेडर से गंतव्य होस्ट और पोर्ट निकालता है।
    """
    # "Host:" स्ट्रिंग के बाद का मान ढूंढें
    host_string_start = request.find(b'Host: ') + len(b'Host: ')
    host_string_end = request.find(b'\r\n', host_string_start)
    host_string = request[host_string_start:host_string_end].decode('utf-8')

    # होस्ट स्ट्रिंग में एक विशिष्ट पोर्ट की जांच करें
    port_pos = host_string.find(":")
    
    # डिफ़ॉल्ट रूप से पोर्ट 80 (मानक HTTP पोर्ट)
    port = 80
    host = host_string
    
    if port_pos != -1:
        # विशिष्ट पोर्ट और होस्ट निकालें
        try:
            port = int(host_string[port_pos + 1:])
            host = host_string[:port_pos]
        except ValueError:
            # उन मामलों को संभालें जहां पोर्ट मान्य संख्या नहीं है, 80 पर डिफ़ॉल्ट सेट करें
            pass

    return host, port

def handle_client_request(client_socket):
    """
    क्लाइंट के एकल कनेक्शन को संभालता है, अनुरोध को अग्रेषित करता है और प्रतिक्रिया को पुनः भेजता है।
    """
    try:
        # 1. क्लाइंट के अनुरोध को पढ़ें
        request = b''
        client_socket.settimeout(1) # नॉन-ब्लॉकिंग पढ़ने के लिए एक छोटा टाइमआउट सेट करें
        while True:
            try:
                data = client_socket.recv(4096)
                if not data:
                    break
                request += data
            except socket.timeout:
                break
            except Exception:
                break

        if not request:
            return

        # 2. गंतव्य होस्ट और पोर्ट निकालें
        host, port = extract_host_port_from_request(request)
        
        # 3. गंतव्य सर्वर से कनेक्ट करने के लिए एक सॉकेट बनाएं
        destination_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        destination_socket.connect((host, port))
        
        # 4. गंतव्य पर मूल अनुरोध भेजें
        destination_socket.sendall(request)
        
        # 5. गंतव्य से प्रतिक्रिया पढ़ें और इसे वापस आगे भेजें
        while True:
            response_data = destination_socket.recv(4096)
            if len(response_data) > 0:
                # क्लाइंट को वापस भेजें
                client_socket.sendall(response_data)
            else:
                # भेजने के लिए और डेटा नहीं है
                break

    except Exception as e:
python Copy
print(f"ग्राहक अनुरोध को संभालने में त्रुटि: {e}")
    अंततः:
        # 6. सॉकेट्स को बंद करें
        यदि 'destination_socket' स्थानीय में है:
            destination_socket.close()
        client_socket.close()

def start_proxy_server():
    """
    मुख्य प्रॉक्सी सर्वर लूप को प्रारंभ और प्रारंभ करता है।
    """
    proxy_port = 8888
    proxy_host = '127.0.0.1'
    
    # सर्वर सॉकेट प्रारंभ करें
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # पते का पुनः उपयोग करने की अनुमति देता है
    server.bind((proxy_host, proxy_port))
    server.listen(10) # 10 समवर्ती कनेक्शनों के लिए सुनें
    
    print(f"पायथन प्रॉक्सी सर्वर {proxy_host}:{proxy_port} पर सुन रहा है...")
    
    # आने वाले कनेक्शनों को स्वीकार करने का मुख्य लूप
    while True:
        client_socket, addr = server.accept()
        print(f"{addr[0]}:{addr[1]} से कनेक्शन स्वीकार किया")
        
        # ग्राहक अनुरोध को संभालने के लिए एक नया थ्रेड बनाएं
        client_handler = threading.Thread(target=handle_client_request, args=(client_socket,))
        client_handler.start()

if __name__ == "__main__":
    start_proxy_server()

कुंजी घटक समझाए गए

  • socket मॉड्यूल: यह पायथन में नेटवर्क संचार का आधार है। हम socket.socket(socket.AF_INET, socket.SOCK_STREAM) का उपयोग करके एक TCP सॉकेट बनाते हैं, जो सुनते सर्वर और गंतव्य से कनेक्शन दोनों के लिए होता है।
  • threading मॉड्यूल: चूंकि एक प्रॉक्सी सर्वर को एक साथ कई ग्राहकों को संभालना चाहिए, हम प्रत्येक आने वाली अनुरोध को एक अलग थ्रेड में संसाधित करने के लिए threading.Thread का उपयोग करते हैं। यह एक धीमे ग्राहक को सभी अन्य अनुरोधों को अवरुद्ध करने से रोकता है। नेटवर्क प्रोग्रामिंग में सर्वोत्तम प्रथाओं के लिए, इन थ्रेड्स का प्रबंधन करना महत्वपूर्ण है।
  • extract_host_port_from_request: यह फ़ंक्शन बहुत महत्वपूर्ण है। यह कच्चे HTTP अनुरोध डेटा को पार्स करता है ताकि Host: हेडर को ढूंढा जा सके, जो प्रॉक्सी को बताता है कि ग्राहक वास्तव में कहाँ जाना चाहता है। यह एक प्रॉक्सी और एक सामान्य वेब सर्वर के बीच महत्वपूर्ण अंतर है।
  • handle_client_request: इस फ़ंक्शन में मुख्य तर्क शामिल है: अनुरोध लेना, गंतव्य से कनेक्ट करना, अनुरोध को अग्रेषित करना, और प्रतिक्रिया को पुनः भेजना।

कस्टम पायथन प्रॉक्सी का उपयोग करने का कब समय

कस्टम प्रॉक्सी बनाना एक अमूल्य अध्ययन अनुभव है, और यह आपको अनुरोध और प्रतिक्रिया प्रवाह पर पूर्ण नियंत्रण देता है। आप आसानी से handle_client_request फ़ंक्शन को कस्टम लॉजिक लागू करने के लिए संशोधित कर सकते हैं, जैसे:

  • अनुरोध संशोधन: अग्रेषित करने से पहले हेडर या उपयोगकर्ता एजेंट को बदलना।
  • सामग्री फ़िल्टरिंग: कुछ डोमेन के लिए अनुरोधों को अवरुद्ध करना।
  • लॉगिंग: सभी ट्रैफ़िक का विस्तृत लॉगिंग।

हालांकि, बड़े पैमाने पर वेब स्क्रैपिंग जैसे उत्पादन स्तर के कार्यों के लिए, एक कस्टम स्क्रिप्ट जल्दी सीमाओं तक पहुँच जाती है:

  • IP प्रबंधन: इसे घुमाने के लिए IPs का एक पूल चाहिए, जो एक सरल स्क्रिप्ट प्रदान नहीं कर सकती।
  • स्केलेबिलिटी: हजारों समवर्ती कनेक्शनों को संभालना उन्नत असिंक्रोनस प्रोग्रामिंग (जैसे asyncio का उपयोग करना) और ठोस बुनियादी ढाँचे की आवश्यकता होती है।
  • एंटी-बॉट बचाव: जटिल एंटी-बॉट सिस्टम जैसे Cloudflare या Akamai को बायपास करना उन्नत तकनीकों की आवश्यकता होती है, जो खरोंच से लागू करना जटिल है। यदि आप वेब स्क्रैपिंग के दौरान 403 त्रुटियों जैसी समस्याओं का सामना कर रहे हैं, तो अक्सर एक वाणिज्यिक समाधान आवश्यक होता है।

सिफारिश की गई प्रॉक्सी समाधान: स्क्रैपलेस प्रॉक्सीज

उन डेवलपर्स और व्यवसायों के लिए जो एक विश्वसनीय, स्केलेबल, और उच्च-प्रदर्शन प्रॉक्सी नेटवर्क की आवश्यकता रखते हैं बिना संरचना बनाने और बनाए रखने के ओवरहेड के, स्क्रैपलेस प्रॉक्सीज एक उत्कृष्ट समाधान प्रदान करता है। स्क्रैपलेस आधुनिक डेटा निष्कर्षण और स्वचालन के लिए बनाया गया है, जो प्रॉक्सी प्रकारों और उन्नत सुविधाओं का पूर्ण सूट प्रदान करता है जिसे एक कस्टम पायथन स्क्रिप्ट आसानी से दोहराया नहीं जा सकता।

स्क्रैपलेस उन लोगों के लिए आदर्श विकल्प है:

  • वैश्विक IP घूमाना: स्वचालित घूर्णन के साथ आवासीय, डेटा सेंटर, और ISP IPs के विशाल पूल तक पहुँच।
  • उच्च सफलता दरें: पुनः प्रयास, CAPTCHA, और जटिल एंटी-बॉट उपायों को संभालने के लिए अनुकूलित बुनियादी ढाँचा। उदाहरण के लिए, स्क्रैपलेस ऐसे उपकरण प्रदान करता है जो CAPTCHA को प्रभावी ढंग से बायपास करने में मदद करते हैं।
  • इंटीग्रेशन में आसानी: किसी भी पायथन प्रोजेक्ट में एक सरल API और स्पष्ट डॉक्यूमेंटेशन के लिए इंटीग्रेशन, जिससे आप नेटवर्क प्लंबिंग के बजाय डेटा विश्लेषण पर ध्यान केंद्रित कर सकें।

चाहे आप बड़े पैमाने पर ई-कॉमर्स डेटा संग्रहण कर रहे हों या बाजार के रुझानों की निगरानी करने की आवश्यकता हो, स्क्रैपलेस उद्यम-ग्रेड संचालन के लिए आवश्यक गति, स्थिरता, और गुप्तता प्रदान करता है।

Copy
```html
<a href="https://www.goproxy.com/register?link=https://app.scrapeless.com/passport/login?utm_source=official&utm_medium=blog&utm_campaign=python-proxy-server">
    <div
      style="
        font-weight: bold;
        width: 100%;
        max-width: 400px;
        padding: 12px 40px;
        background: #12A594;
        border-radius: 5px;
        border: 2px solid #12A594;
        color: #fff;
        cursor: pointer;
        box-sizing: border-box;
        font-size: 18px;
      "
    >
      मुफ्त में प्रयास करें &gt;
    </div>
  </a>
</div>

जो लोग उन्नत डेटा निष्कर्षण में रुचि रखते हैं, Scrapeless भी एक <a href="https://www.scrapeless.com/hi/product/scraping-api" rel="nofollow">**स्क्रैपिंग एपीआई**</a> और एक <a href="https://www.scrapeless.com/hi/blog/best-residential-proxy" rel="nofollow">**सर्वश्रेष्ठ आवासीय प्रॉक्सी के लिए गाइड**</a> प्रदान करता है, जो गंभीर डेटा पेशेवरों के लिए आवश्यक उपकरण हैं।

## निष्कर्ष

पायथन प्रॉक्सी सर्वर बनाना नेटवर्क प्रोग्रामिंग में एक अद्भुत व्यायाम है, जो यह गहरा अंतर्दृष्टि प्रदान करता है कि एप्लिकेशन परत पर इंटरनेट कैसे काम करता है। जबकि आपका कस्टम स्क्रिप्ट सीखने और छोटे, नियंत्रित वातावरणों के लिए सही है, उत्पादन-स्तरीय डेटा निष्कर्षण के लिए एक व्यावसायिक प्रॉक्सी सेवा की मजबूती और पैमाने की आवश्यकता होती है। अपने कस्टम प्रॉक्सी के बुनियादी सिद्धांतों को समझने के द्वारा, आप अपने सबसे चुनौतीपूर्ण परियोजनाओं के लिए Scrapeless Proxies जैसे पेशेवर समाधानों की शक्ति का लाभ उठाने के लिए बेहतर ढंग से सुसज्जित हैं।

***

## सामान्य प्रश्न (FAQ)

### प्रश्न: पायथन प्रॉक्सी सर्वर में थ्रेडिंग का उपयोग क्यों किया जाता है?
**उत्तर:** `threading` मॉड्यूल का उपयोग प्रॉक्सी सर्वर को एक साथ कई क्लाइंट कनेक्शनों को संभालने में सक्षम बनाने के लिए किया जाता है। थ्रेडिंग के बिना, सर्वर को एक क्लाइंट के अनुरोध और उसके बाद के जवाब के पूरा होने का इंतजार करना पड़ेगा, इससे नया कनेक्शन स्वीकार करने में धीमा और अनुत्तरदायी सर्वर होगा। थ्रेडिंग प्रत्येक क्लाइंट अनुरोध को समवर्ती रूप से संसाधित करने की अनुमति देती है [4]।

### प्रश्न: क्या यह पायथन प्रॉक्सी HTTPS ट्रैफ़िक संभाल सकता है?
**उत्तर:** प्रदान किया गया कोड एक मूल HTTP प्रॉक्सी है और सीधे HTTPS ट्रैफ़िक को संभाल नहीं सकता है। HTTPS को संभालने के लिए, प्रॉक्सी को **HTTP कनेक्ट विधि** को लागू करना होगा। इसमें क्लाइंट और गंतव्य सर्वर के बीच एक टनल स्थापित करना शामिल है, जिसमें प्रॉक्सी बस एन्क्रिप्टेड डेटा को बिना निरीक्षण किए पुनः प्रेषित करती है। इसे लागू करने के लिए अधिक जटिल सॉकेट लॉजिक की आवश्यकता होती है।

### प्रश्न: अग्रेषक प्रॉक्सी और रिवर्स प्रॉक्सी में क्या अंतर है?
**उत्तर:** जो स्क्रिप्ट हमने बनाई है वह एक **अग्रेषक प्रॉक्सी** है, जो क्लाइंट के सामने बैठती है और इंटरनेट पर विभिन्न सर्वरों को अनुरोधों को अग्रेषित करती है। एक **रिवर्स प्रॉक्सी** एक वेब सर्वर (या सर्वरों के समूह) के सामने बैठती है और इंटरनेट से अनुरोधों को इंटरसेप्ट करती है, उन्हें उपयुक्त आंतरिक सर्वर पर अग्रेषित करती है। रिवर्स प्रॉक्सी का आमतौर पर लोड संतुलन, सुरक्षा और कैशिंग के लिए उपयोग किया जाता है।

### प्रश्न: क्या प्रॉक्सी सर्वर बनाना और उपयोग करना कानूनी है?
**उत्तर:** हाँ, प्रॉक्सी सर्वर बनाना और उपयोग करना कानूनी है। प्रॉक्सी नेटवर्क प्रबंधन, सुरक्षा और गोपनीयता के लिए वैध उपकरण हैं। हालांकि, कानूनीता **इस पर निर्भर करती है कि प्रॉक्सी का उपयोग कैसे किया जाता है**। किसी भी प्रॉक्सी (कस्टम या व्यवसायिक) का उपयोग अवैध गतिविधियों के लिए, जैसे अनधिकृत डेटा तक पहुंचने या साइबर क्राइम में संलग्न होने के लिए अवैध है।

### प्रश्न: मैं इस प्रॉक्सी को प्रोडक्शन उपयोग के लिए अधिक मजबूत कैसे बना सकता हूँ?
**उत्तर:** इस प्रॉक्सी को प्रोडक्शन-रेडी बनाने के लिए, आपको:
1.  **असिंक्रोनस I/O पर स्विच करें:** बेहतर प्रदर्शन और पैमाने के लिए `threading` के बजाय `asyncio` या `Twisted` जैसी पुस्तकालय का उपयोग करें।
2.  **HTTPS समर्थन जोड़ें:** सुरक्षित ट्रैफ़िक के लिए `CONNECT` विधि को लागू करें।
3.  **कैशिंग लागू करें:** जितना संभव हो, अनियमित रूप से अनुरोधित सामग्री को स्टोर करें ताकि विलंबता और बैंडविड्थ उपयोग कम हो सके।
4.  **त्रुटि प्रबंधन:** नेटवर्क विफलताओं और खराब अनुरोधों के लिए अधिक मजबूत त्रुटि प्रबंधन जोड़े।
5.  **IP प्रबंधन:** IP रोटेशन और पूल प्रबंधन को संभालने के लिए Scrapeless जैसी व्यावसायिक प्रॉक्सी प्रदाता के साथ एकीकृत करें।

***

## संदर्भ

[1] <a href="https://realpython.com/intro-to-python-threading/" rel="nofollow">**रियल पायथन - पायथन में थ्रेडिंग का परिचय**</a>
[2] <a href="https://docs.python.org/3/howto/sockets.html" rel="nofollow">**पायथन डोक्यूमेंटेशन - सॉकेट प्रोग्रामिंग कैसे करें**</a>
[3] <a href="https://www.stratascratch.com/blog/python-threading-like-a-pro/" rel="nofollow">**स्ट्रेटास्क्रैच - एक प्रो की तरह पायथन थ्रेडिंग**</a>
[4] <a href="https://datatracker.ietf.org/doc/html/rfc7230" rel="nofollow">**RFC 7230 - हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP/1.1): संदेश वाक्य रचना और रूटिंग**</a>

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

सबसे लोकप्रिय लेख

सूची