راهاندازی پروکسی IPRoyal: انتخاب HTTP در برابر SOCKS5 در برابر Shadowsocks و تأیید اولین درخواست شما
راهنمای عملی اولین اتصال به پروکسیهای IPRoyal: پروتکل مناسب برای بار کاری خود را انتخاب کنید، یک URL پروکسی کارآمد بسازید، سپس اتصال و رفتار DNS را با curl و Python در macOS یا Linux تأیید کنید.
مرور کلی
IPRoyal پروکسیهای مسکونی، دیتاسنتر و ISP را از طریق HTTP(S)، SOCKS5 و تونلزنی به سبک Shadowsocks ارائه میدهد، با صورتحساب پرداخت بهازای مصرف یا ماهانه ثابت، پشتیبانیشده با استخری از بیش از ۳۲ میلیون IP. همین تنوع پروتکل دقیقاً دلیل انتخاب آن توسط افراد است — و همچنین رایجترین دلیل شکست در راهاندازی اولیه. چسباندن یک endpoint SOCKS5 در فیلدی که فقط HTTP میپذیرد، یا برعکس، خطاهایی تولید میکند که شبیه پروکسی مرده به نظر میرسند، نه عدم تطابق پیکربندی.
این آموزش شما را از یک حساب تازه IPRoyal به یک اتصال تأییدشده و قابل اسکریپتنویسی میبرد. نوع پروکسی و پروتکل مناسب برای بار کاری خود را انتخاب میکنید، یک URL پروکسی کارآمد میسازید، اثبات میکنید که ترافیک واقعاً از IPRoyal خارج میشود، و بررسی میکنید که DNS دور تونل resolve نشود. هر دستور در ترمینال macOS یا Linux اجرا میشود؛ URLهای پروکسی در Windows یکسان هستند، فقط نحو متغیرهای شل متفاوت است.
آنچه نیاز دارید
- یک پلن فعال IPRoyal (مسکونی، دیتاسنتر یا ISP) و دسترسی به داشبورد خود
- میزبان gateway، پورت، نام کاربری و رمز عبور دقیقاً همانطور که داشبورد نشان میدهد
curlساختهشده با پشتیبانی SOCKS5 (نسخههای استاندارد روی macOS، Debian و Ubuntu شامل آن هستند)- اختیاری: Python 3.8+ با کتابخانه
requestsبرای بررسیهای اسکریپتی
انتخاب نوع پروکسی و پروتکل
نوع پروکسی و پروتکل دو تصمیم جداگانه هستند. نوع تعیین میکند که با کدام IP ظاهر میشوید؛ پروتکل تعیین میکند که ترافیک شما در مسیر چگونه بستهبندی میشود. ابتدا نوع را انتخاب کنید، سپس پروتکل را.
| بار کاری | نوع پروکسی | پروتکل | چرا مناسب است |
|---|---|---|---|
| حریم خصوصی مرورگر در یک منطقه | مسکونی | HTTP(S) | سادهترین برای پیکربندی؛ در هر فیلد پروکسی مرورگر کار میکند |
| ابزارهای CLI و اسکرپرهایی که نباید DNS را نشت دهند | مسکونی | SOCKS5 | رفتار تونل کامل با resolve کردن DNS از راه دور |
| برنامههایی که فقط پروکسی HTTP میپذیرند | ISP | HTTP(S) | آدرسهای پایدار به سبک هاستینگ که کمتر غیرعادی به نظر میرسند |
| نشستهای طولانیمدت، یک IP برای هر حساب | ISP یا مسکونی | SOCKS5 یا Shadowsocks | اتصالها بدون چرخش اجباری پایدار میمانند |
| شبکههایی که پورتهای پروکسی ساده در آنها محدود یا مسدود شدهاند | هر کدام | Shadowsocks | تونلزنی مبهمسازیشده وقتی پورت پروکسی خالی فیلتر میشود |
در دسترس بودن پروتکل ممکن است بر اساس محصول و پلن متفاوت باشد، بنابراین قبل از ساختن هر چیزی تأیید کنید که داشبورد خاص شما چه چیزی ارائه میدهد. جایی که هر دو ارائه میشوند، HTTP(S) اشکالزدایی آسانتری دارد و SOCKS5 توانمندتر است — با HTTP(S) شروع کنید، سپس وقتی اعتبارنامهها اثبات شد که کار میکنند به SOCKS5 بروید.
مراحل
-
endpoint و اعتبارنامهها را از داشبورد کپی کنید. آنها را دوباره تایپ نکنید. از دکمههای کپی استفاده کنید تا فاصلههای انتهایی و کاراکترهای شبیه هرگز وارد نشوند. چهار مقدار مورد نیاز شما میزبان gateway، پورت، نام کاربری و رمز عبور هستند.
export PROXY_USER="dashboard-username" export PROXY_PASS="dashboard-password" export PROXY_HOST="gateway-host-from-dashboard" export PROXY_PORT="gateway-port-from-dashboard" -
URL پروکسی را برای هر پروتکل بسازید. قالب URL همهجا یکسان است: اعتبارنامهها، سپس میزبان، سپس پورت.
http://USERNAME:PASSWORD@HOST:PORT # HTTP/HTTPS proxy socks5h://USERNAME:PASSWORD@HOST:PORT # SOCKS5, DNS resolved at the proxyاگر رمز عبور شما شامل
@،:،/یا?است، آن را percent-encode کنید (@به%40،:به%3Aتبدیل میشود). کاراکترهای خاص کدگذرینشده رایجترین علت واحد شکست احراز هویت هستند. -
یک درخواست HTTP(S) را از ترمینال تأیید کنید. این کار ثابت میکند اعتبارنامهها، میزبان و پورت همه درست هستند، قبل از اینکه مرورگر یا اسکریپتی را درگیر کنید.
curl -sS \ --proxy "http://$PROXY_USER:$PROXY_PASS@$PROXY_HOST:$PROXY_PORT" \ "https://api.ipify.org?format=json"باید یک شیء JSON کوچک حاوی مقدار
ipدریافت کنید که آدرس خودتان نیست. اگر IP واقعی خود را اینجا دیدید، فلگ نادیده گرفته شده و ترافیک مستقیماً خارج شده است. -
یک درخواست SOCKS5 را تأیید کنید و DNS از راه دور بگیرید. از
--socks5-hostnameاستفاده کنید تا پروکسی نام میزبان را resolve کند، نه اینکه دستگاه شما آن را بهصورت محلی انجام دهد.curl -sS \ --socks5-hostname "$PROXY_USER:$PROXY_PASS@$PROXY_HOST:$PROXY_PORT" \ "https://api.ipify.org?format=json"تفاوت مهم است:
--socks5DNS را روی دستگاه شما resolve میکند و سپس اتصال را تونل میزند، در حالی که--socks5-hostnameنام میزبان را به پروکسی میفرستد. برای کارهای مربوط به حریم خصوصی،--socks5-hostnameو طرح URL معادلsocks5h://را در اسکریپتها ترجیح دهید. -
وقتی چیزی مشکوک به نظر میرسد تونل را بررسی کنید. خروجی verbose نشان میدهد که آیا پروکسی درخواست را قبل از درگیر شدن محتوای صفحه پذیرفته است یا نه.
curl -v \ --proxy "http://$PROXY_USER:$PROXY_PASS@$PROXY_HOST:$PROXY_PORT" \ -o /dev/null "https://example.com"به دنبال یک خط
CONNECTبگردید که بعد از آنHTTP/1.1 200 Connection establishedآمده باشد. یک407در آن نقطه مشکل احراز هویت است؛ یک timeout در آن نقطه مشکل میزبان یا پورت است. -
همان بررسی را در Python اسکریپت کنید. برای پروکسیهای HTTP،
requestsبه بستههای اضافی نیاز ندارد.import os import requests proxy_url = os.environ["IPROYAL_PROXY_URL"] # http://user:pass@host:port proxies = {"http": proxy_url, "https": proxy_url} response = requests.get( "https://api.ipify.org?format=json", proxies=proxies, timeout=30, ) response.raise_for_status() print(response.json())برای SOCKS5، ابتدا وابستگی اختیاری را نصب کنید، سپس از یک URL
socks5h://استفاده کنید تا DNS در سمت پروکسی resolve شود.pip install "requests[socks]"import os import requests socks_url = os.environ["IPROYAL_SOCKS_URL"] # socks5h://user:pass@host:port proxies = {"http": socks_url, "https": socks_url} session = requests.Session() print(session.get("https://api.ipify.org", proxies=proxies, timeout=30).text) -
بین چرخش و نشستهای sticky تصمیم بگیرید. مرحله ۳ را دو بار با همان اعتبارنامهها اجرا کنید و دو آدرس را مقایسه کنید. اگر IP تغییر نکرده است، پلن شما یک نشست sticky نگه میدارد، که همان چیزی است که برای ورودها و فرمهای چندمرحلهای میخواهید. اگر به آدرس جدید نیاز دارید، با استفاده از کنترلهای نشست یا چرخش که داشبورد شما ارائه میدهد یکی درخواست کنید، نه با ویرایش دستی پارامترهای URL — اعتبارنامههای تولیدشده از قبل بهدرستی قالببندی شدهاند.
-
منطقه خروج را تأیید کنید و نشتهای DNS را بررسی کنید. یک درخواست trace از Cloudflare هم IP خروج و هم کشوری که در آن ثبت شده است را نشان میدهد، که سریعترین راه برای گرفتن یک پلن بدمسیریابیشده است.
curl -sS \ --proxy "http://$PROXY_USER:$PROXY_PASS@$PROXY_HOST:$PROXY_PORT" \ "https://1.1.1.1/cdn-cgi/trace"خطوط
ip=وloc=را بخوانید:loc=باید با منطقهای که قصد استفاده از آن را داشتید مطابقت داشته باشد. سپس یک تست نشت DNS عمومی در مرورگری که پیکربندی کردهاید اجرا کنید؛ اگر resolver نشاندادهشده ISP محلی شماست نه شبکه پروکسی، آن مرورگر را به پیکربندی SOCKS5 یا کلاینتی که از DNS از راه دور به سبکsocks5hپشتیبانی میکند تغییر دهید.
عیبیابی
407 Proxy Authentication Required— اعتبارنامهها اشتباه، باطلشده، یا حاوی کاراکترهای خاص کدگذرینشده هستند. رمز عبور را percent-encode کنید و هر دو مقدار را دوباره کپی کنید.curl: (7) Failed to connectیا timeout — میزبان یا پورت اشتباه است، یا پروتکل و پورت مطابقت ندارند (پورت HTTP با URL SOCKS5 استفاده شده). ستون پروتکل را در داشبورد بررسی کنید.curl: (97) Can't complete SOCKS5 connection—curlبه چیزی رسیده که endpoint SOCKS5 نیست. تأیید کنید که روی پورت SOCKS5 هستید نه پورت HTTP.- در
curlکار میکند، در مرورگر شکست میخورد — بیشتر فیلدهای پروکسی مرورگر فقط HTTP(S) را میپذیرند. یا از endpoint HTTP استفاده کنید یا SOCKS5 را در سطح سیستمعامل یا کلاینت پیکربندی کنید. 403یا429مکرر از یک سایت هدف — سایت در حال محدودسازی نرخ آدرس یا نشست است. نرخ درخواست را کاهش دهید، یا یک نشست را برای دنباله طولانیتری نگه دارید بهجای چرخش در هر درخواست.- IP خروج هرگز تغییر نمیکند — یک نشست sticky فعال است، یا استخر انتخابشده از نظر جغرافیایی باریک است. از کنترلهای نشست داشبورد برای درخواست خروج متفاوت استفاده کنید.
- HTTPS کار میکند اما صفحات هنوز منطقه محلی شما را نشان میدهند — DNS بهصورت محلی resolve میشود. به
socks5h/--socks5-hostnameتغییر دهید، یا کلاینت را به پیکربندی تونل کامل ببرید. - کلاینت Shadowsocks شروع نمیشود — معمولاً cipher یا کلید اشتباه تایپشده است. پیکربندی تولیدشده را جای رونویسی از آن بچسبانید، و مطمئن شوید پورت شنود محلی که انتخاب کردهاید از قبل استفاده نمیشود.
- هزینهها بهطور غیرمنتظره بالا میروند — پلنهای پرداخت بهازای مصرف، مصرف را اندازهگیری میکنند، بنابراین یک حلقه لجامگسیخته در یک اسکرپر یا مرورگری که در پسزمینه همگامسازی میکند میتواند سهمیه را بهسرعت مصرف کند. بعد از اولین اجرای تأیید، مصرف را بررسی کنید.
خلاصه
- نوع پروکسی (مسکونی، دیتاسنتر، ISP) انتخاب میکند که با کدام IP ظاهر میشوید؛ پروتکل (HTTP، SOCKS5، Shadowsocks) انتخاب میکند که ترافیک چگونه بستهبندی شود. هر دو را آگاهانه تصمیم بگیرید.
- میزبان، پورت، نام کاربری و رمز عبور را از داشبورد کپی کنید، کاراکترهای خاص را percent-encode کنید، و برای هر پروتکل یک قالب URL بسازید.
- قبل از دست زدن به مرورگر یا اسکریپت، با یک درخواست
curlبه یک سرویس echo IP تأیید کنید — این کار خطاهای اعتبارنامه را از خطاهای برنامه جدا میکند. - هر زمان که حریم خصوصی DNS مهم است از
socks5h://یا--socks5-hostnameاستفاده کنید، و منطقه خروج را با یک درخواست trace تأیید کنید. - چرخش در برابر نشستهای sticky را زود تست کنید، چون این انتخاب تعیین میکند که ابزار شما باید چگونه retryها و ورودها را مدیریت کند.
وقتی یک درخواست تأییدشده موفق شد، همان اعتبارنامهها مستقیماً در یک مرورگر، یک کتابخانه اسکرپینگ، یا یک ابزار زنجیرهسازی پروکسی قرار میگیرند. IPRoyal با توجه به تنوع پروتکل و گزینههای صورتحسابش، یک ارائهدهنده معقول برای این گردش کار است؛ مراحل تأیید بالا برای هر ارائهدهندهای که آن را مقایسه میکنید اعمال میشود.