प्रॉक्सी सेटअप · 3 मिनट पढ़ें

HTTP_PROXY / HTTPS_PROXY पर्यावरण चर का उपयोग करना

HTTP_PROXY, HTTPS_PROXY और NO_PROXY पर्यावरण चर प्रोग्राम के आउटबाउंड ट्रैफ़िक को प्रॉक्सी के माध्यम से भेजने का सबसे तेज़ तरीका है। यहाँ यह curl, wget, Python, Node.js और Docker के बीच कैसे व्यवहार करते हैं - और जहाँ वे चुपचाप नहीं करते हैं।

प्रॉक्सी पर्यावरण चर कैसे काम करते हैं

HTTP_PROXY, HTTPS_PROXY और NO_PROXY एक पुरानी, क्रॉस-प्लेटफ़ॉर्म परंपरा है: कई कमांड-लाइन उपकरण और HTTP पुस्तकालय इन्हें स्टार्टअप पर पढ़ते हैं और आउटबाउंड अनुरोधों को उस प्रॉक्सी के माध्यम से रूट करते हैं जिसका आप नाम लेते हैं। प्रभाव सरल है — आपका असली / मूल IP छिपा रहता है और गंतव्य प्रॉक्सी के निकासी पते को देखता है।

The naming trips people up. HTTP_PROXY is the proxy used for http:// destination URLs and HTTPS_PROXY for https:// destination URLs — it does not mean "a proxy reached over HTTPS". The scheme inside the value (http:// or socks5h://) is what decides how your client reaches our proxy.

हर उपकरण इन चर का सम्मान नहीं करता है, और जो करते हैं वे विवरणों पर असहमत होते हैं:

की आवश्यकता है के माध्यम से पास करें
उपकरणपर्यावरण चर पढ़ता है?नोट्स
curlहाँछोटे अक्षरों में http_proxy केवल HTTP के लिए; HTTPS के लिए दोनों मामलों में
wgetहाँhttp_proxy, https_proxy, no_proxy का सम्मान करता है
Python requests / urllibहाँस्वचालित; एक प्रति-अनुरोध proxies= तर्क ओवरराइड करता है
Node.js कोर fetch / httpनहींundici ProxyAgent या global-agent
Docker CLI / buildआंशिक--build-arg, -e या config.json

हमारी प्रॉक्सियाँ डेटासेंटर प्रॉक्सियाँ हैं (निवासी नहीं), इसलिए उपभोक्ता साइटें इन्हें अधिक आसानी से चिह्नित कर सकती हैं — APIs, CI और उन लक्ष्यों के लिए जो आप नियंत्रित करते हैं, के लिए बेहतरीन, लेकिन लॉक-डाउन उपभोक्ता प्लेटफार्मों के लिए कम। हमारी प्रमाणित SOCKS5 और HTTP प्रॉक्सियाँ एक उपयोगकर्ता नाम और पासवर्ड लेती हैं, इसलिए आपकी क्रेडेंशियल के बिना कुछ भी बाहर नहीं जाता। हमेशा-ऑन, पूर्ण-डिवाइस रूटिंग के लिए WireGuard VPN का उपयोग करें; फेंकने योग्य सार्वजनिक प्रॉक्सी सूची या मूल्य मीटर किए गए एक्सेस को देखने के लिए मूल्य निर्धारण देखें। अधिक व्यंजन गाइड्स में हैं, और VPN बनाम प्रॉक्सी की पूरी तुलना भी यहाँ है।

अपने शेल (curl + wget) में वेरिएबल सेट करें

एक बार निर्यात करें, फिर सामान्य कमांड प्रॉक्सी के माध्यम से बाहर निकलें। प्रमाणीकरण URL में USER:PASS के रूप में इनलाइन जाता है। छोटे अक्षरों का रूप भी सेट करें — curl केवल HTTP स्कीम के लिए छोटे अक्षरों वाले http_proxy को पढ़ता है।

bash
# HTTP proxy endpoint (port 3128) with inline auth
export HTTP_PROXY="http://USER:PASS@proxy.s4m.online:3128"
export HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128"
# curl and some tools only read the lowercase form — set both
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"

# Never send local / internal traffic through the proxy
export NO_PROXY="localhost,127.0.0.1,::1,.internal,169.254.169.254"
export no_proxy="$NO_PROXY"

# Now normal commands go through the proxy
curl https://api.ipify.org      # prints the proxy exit IP, not yours
wget -qO- https://api.ipify.org

# One-off, without exporting anything:
curl -x http://USER:PASS@proxy.s4m.online:3128 https://example.com

# SOCKS5 (port 1080). socks5h makes DNS resolve AT the proxy,
# so your origin never leaks the hostname lookup.
export ALL_PROXY="socks5h://USER:PASS@proxy.s4m.online:1080"
curl https://api.ipify.org

Python और Node.js

Python के requests/urllib स्वचालित रूप से चर उठाते हैं। Node का कोर http और वैश्विक fetch() नहीं करते — आपको स्वयं एक प्रॉक्सी एजेंट संलग्न करना होगा।

python
# --- Python: requests, urllib, pip and httpx honor the env vars ---
import requests
print(requests.get("https://api.ipify.org").text)   # proxy exit IP

# Override per-request (this ignores the env vars):
proxies = {
    "http":  "http://USER:PASS@proxy.s4m.online:3128",
    "https": "http://USER:PASS@proxy.s4m.online:3128",
}
requests.get("https://api.ipify.org", proxies=proxies)

# SOCKS5 needs the extra:  pip install "requests[socks]"
proxies = {"https": "socks5h://USER:PASS@proxy.s4m.online:1080"}


# --- Node.js (>=18): core fetch does NOT read HTTP_PROXY on its own ---
// import { ProxyAgent, setGlobalDispatcher } from "undici";
// setGlobalDispatcher(
//   new ProxyAgent("http://USER:PASS@proxy.s4m.online:3128"));
// const r = await fetch("https://api.ipify.org");
// console.log(await r.text());        // proxy exit IP
//
// To make libraries respect the env vars instead:
//   npm i global-agent
//   GLOBAL_AGENT_HTTP_PROXY=$HTTP_PROXY node -r global-agent/bootstrap app.js

डॉकर (बिल्ड और रनटाइम)

कंटेनर आपके शेल वातावरण को विरासत में नहीं लेते। निर्माण और चलाने के लिए वेरिएबल्स को स्पष्ट रूप से पास करें; जो डेमन इमेज खींचता है वह उन्हें अपनी कॉन्फ़िगरेशन फ़ाइल से पढ़ता है।

bash
# Build-time: forward the proxy into the build
docker build \
  --build-arg HTTP_PROXY="http://USER:PASS@proxy.s4m.online:3128" \
  --build-arg HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128" \
  --build-arg NO_PROXY="localhost,127.0.0.1" .

# Runtime: inject into the running container
docker run --rm \
  -e HTTP_PROXY="http://USER:PASS@proxy.s4m.online:3128" \
  -e HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128" \
  -e NO_PROXY="localhost,127.0.0.1" \
  curlimages/curl https://api.ipify.org

# The Docker daemon itself (image pulls) reads ~/.docker/config.json:
#   { "proxies": { "default": {
#       "httpProxy":  "http://USER:PASS@proxy.s4m.online:3128",
#       "httpsProxy": "http://USER:PASS@proxy.s4m.online:3128",
#       "noProxy":    "localhost,127.0.0.1" } } }

जानने लायक गोटचास

प्रतिशत-कोडित क्रेडेंशियल्स

USER:PASS में विशेष वर्ण URL को तोड़ देते हैं। इन्हें एन्कोड करें: @ को %40 में, : को %3A में, / को %2F में, # को %23 में। अन्यथा, पार्सर मान को गलत स्थान पर काट देता है।

HTTPS_PROXY https:// URLs को लक्षित करता है

यह HTTPS गंतव्य URL के लिए प्रॉक्सी का चयन करता है - न कि HTTPS के माध्यम से पहुंची गई प्रॉक्सी। मान में योजना (http:// या socks5h://) यह निर्धारित करती है कि आप हमारी प्रॉक्सी से कैसे कनेक्ट करते हैं।

NO_PROXY बहुत चयनात्मक है

कमा से अलग, कोई स्पेस नहीं, प्रत्यय-मैच (.example.com)। CIDR रेंज और * वाइल्डकार्ड कुछ उपकरणों द्वारा समर्थित हैं और दूसरों द्वारा अनदेखा किए जाते हैं, इसलिए मान लें कि परीक्षण करें।

socks5h बनाम socks5

socks5:// के साथ आपकी मशीन DNS को स्थानीय रूप से हल करती है और केवल TCP कनेक्शन को प्रॉक्सी किया जाता है। socks5h:// का उपयोग करें ताकि होस्टनेम लुकअप भी प्रॉक्सी पर हो, जिससे DNS आपके मूल से बाहर रहे।

क्रेडेंशियल्स स्थानीय रूप से दिखाई देते हैं

Env vars ps आउटपुट, शेल इतिहास और CI लॉग में दिखाई देते हैं। एक प्रति-खाता प्रॉक्सी क्रेडेंशियल का उपयोग करें जिसे आप घुमा सकते हैं, और उन्हें Dockerfile या पाइपलाइन में कमिट करने के बजाय गुप्त स्टोर्स को प्राथमिकता दें।

हर क्लाइंट उनका पालन नहीं करता

नोड का मुख्य http और फेच, साथ ही कुछ SDKs, इन चर को पूरी तरह से अनदेखा करते हैं। हमेशा एक IP इको के साथ पुष्टि करें जैसे api.ipify.org कि ट्रैफ़िक वास्तव में प्रॉक्सी निकासी के माध्यम से निकला, न कि आपके असली IP के माध्यम से।

Share this page
FAQ

प्रश्न, उत्तरित

क्यों curl HTTP_PROXY की अनदेखी करता है लेकिन http_proxy का सम्मान करता है?

HTTP योजना के लिए, curl जानबूझकर केवल छोटे अक्षरों में http_proxy पढ़ता है। बड़े अक्षरों का HTTP_PROXY कई साल पहले बंद कर दिया गया था क्योंकि CGI स्क्रिप्ट क्लाइंट हेडर से एक HTTP_* पर्यावरण चर प्राप्त करती हैं, जो प्रॉक्सी सेटिंग को हाईजैक कर सकती हैं। HTTPS और NO_PROXY के लिए curl दोनों मामलों को पढ़ता है। सुरक्षित आदत यह है कि दोनों बड़े और छोटे रूपों को निर्यात करें।

HTTPS_PROXY और 'HTTPS के माध्यम से एक प्रॉक्सी' के बीच क्या अंतर है?

HTTPS_PROXY यह चुनता है कि कौन सी प्रॉक्सी https:// गंतव्य URL के लिए अनुरोधों को संभालती है। यह प्रॉक्सी से कनेक्ट करने के तरीके के बारे में कुछ नहीं कहता — वह मान में स्कीम द्वारा सेट किया जाता है। http://proxy.s4m.online:3128 हमारे HTTP प्रॉक्सी तक स्पष्ट कनेक्ट में पहुंचता है; socks5h://proxy.s4m.online:1080 SOCKS5 एंडपॉइंट तक पहुंचता है। आपके https साइट के लिए वास्तविक पेलोड अंत से अंत तक TLS-एन्क्रिप्टेड रहता है।

क्या मैं HTTP_PROXY में SOCKS5 URL डाल सकता हूँ?

curl socks5:// और socks5h:// को प्रॉक्सी URL में स्वीकार करता है, लेकिन कई अन्य उपकरण नहीं करते। पोर्टेबिलिटी के लिए, SOCKS5 के लिए ALL_PROXY का उपयोग करें या पुस्तकालय का अपना SOCKS विकल्प। DNS को proxy.s4m.online:1080 पर हल करने के लिए socks5h:// को प्राथमिकता दें, न कि आपके मूल से लीक होने वाले लुकअप।

क्या ये आवासीय प्रॉक्सी हैं?

नहीं। s4m प्रॉक्सी प्रमाणित डेटा केंद्र SOCKS5 और HTTP प्रॉक्सी हैं, जो उपयोग के अनुसार बिल किए जाते हैं। डेटा केंद्र IPs API, CI और स्क्रैपिंग लक्ष्यों के लिए तेज और विश्वसनीय होते हैं जिन्हें आप नियंत्रित करते हैं, लेकिन कुछ उपभोक्ता साइटें डेटा केंद्र रेंज को आवासीय की तुलना में अधिक आसानी से पहचानती और ब्लॉक करती हैं। हम आवासीय IPs नहीं बेचते या दावा नहीं करते।

क्या इन वेरिएबल्स को सेट करने से मेरा असली IP हर जगह छिप जाएगा?

केवल उन कार्यक्रमों के लिए जो वास्तव में उन्हें पढ़ते हैं। नोड का मुख्य http, वैश्विक फेच, कुछ SDK और कोई भी ऐप जो कच्चे सॉकेट खोलता है, प्रॉक्सी को बायपास करेगा और आपका असली IP उजागर करेगा। कॉन्फ़िगर करने के बाद, api.ipify.org जैसे IP इको के साथ सत्यापित करें, या जब आपको डिवाइस पर हर प्रक्रिया को रूट करने की आवश्यकता हो तो हमारे WireGuard VPN का उपयोग करें।

अपने अनुरोधों को s4m के माध्यम से रूट करें

प्रमाणित SOCKS5 और HTTP डेटा सेंटर प्रॉक्सियाँ, मीटर किए गए पे-एज़-यू-गो, साथ ही फ्लैट-रेट वायरगार्ड VPN। डिज़ाइन द्वारा कोई लॉग नहीं, RAM-प्रथम, गुमनाम खाते। जब भी आपको एक स्थिर निकासी की आवश्यकता हो, एक समर्पित व्यक्तिगत IP जोड़ें।

लोगों ने इस पृष्ठ को खोजकर पाया

वास्तविक खोज वाक्यांश जिनका यह पृष्ठ उत्तर देता है — लिंक किए गए वाक्यांश उस पृष्ठ को खोलते हैं जो उन्हें गहराई से कवर करता है।