ProxynetProxynet

سرور پروکسی چیست و چگونه کار می‌کند؟

تاریخ انتشار:

13 دقیقه مطالعه

Acar Diveroli
نویسنده: Acar Diveroli
طرح ایزومتریک از درخواستی که از رایانه خارج می‌شود، از یک مکعب پروکسی آبی می‌گذرد و به کره زمین می‌رسد

وقتی سایتی را باز می‌کنید، مرورگر درخواست را مستقیم به سرور همان سایت می‌فرستد و سایت آدرس IP شما را می‌بیند. اگر یک سرور پروکسی میان این دو قرار دهید، درخواست ابتدا به پروکسی می‌رود؛ پروکسی همان درخواست را با آدرس IP خودش به مقصد می‌فرستد و پاسخ را به شما برمی‌گرداند. سایت مقصد گمان می‌کند با پروکسی حرف می‌زند، نه با شما.

همین فکر ساده پشت کارهای زیادی است؛ از کنترل دسترسی در شبکه‌های سازمانی تا پایش قیمت، بررسی تبلیغات و دیدن نتایج جست‌وجو آن‌طور که در کشورهای دیگر نمایش داده می‌شوند. در این نوشته مسیر یک درخواست از میان پروکسی را گام‌به‌گام دنبال می‌کنیم، انواع پروکسی را از سه زاویه جدا بررسی می‌کنیم، توضیح می‌دهیم پروکسی به چه کار می‌آید و به همان اندازه مهم، چه کاری نمی‌کند، و در پایان به انتخاب پروکسی متناسب با نیازتان می‌رسیم.

سرور پروکسی چیست؟

واژه «پروکسی» یعنی کسی که اجازه دارد از طرف دیگری اقدام کند، و معنای فنی آن هم دقیقاً همین است: سروری میانی که از طرف شما با سرور دیگری گفت‌وگو می‌کند. استاندارد HTTP یعنی ⁦RFC 9110⁩ پروکسی را واسطه‌ای تعریف می‌کند که کلاینت انتخاب کرده و درخواست‌ها را از طرف او ارسال می‌کند. کلیدواژه همان «انتخاب‌شده توسط کلاینت» است: شما یا مدیر شبکه‌تان پروکسی را تنظیم می‌کنید و مرورگر یا برنامه می‌داند به کجا وصل شود.

در زبان روزمره، «پروکسی» معمولاً همین نوع یعنی فوروارد پروکسی است. نوع دیگری هم به نام ریورس پروکسی وجود دارد که جلوی سرورها می‌نشیند و نماینده سایت است، نه بازدیدکننده. این دو را در فوروارد پروکسی و ریورس پروکسی مقایسه کرده‌ایم؛ بقیه این نوشته درباره فوروارد پروکسی است.

سرور پروکسی سه جزء اصلی دارد:

  • آدرس و پورت ورودی: آدرسی که کلاینت به آن وصل می‌شود، مثلاً pr.proxynet.io:8000.
  • احراز هویت: نام کاربری و رمز یا فهرستی از IPهای مجاز که تعیین می‌کند چه کسی می‌تواند از پروکسی استفاده کند.
  • آدرس IP خروجی: آدرسی که سایت مقصد می‌بیند. بیشتر ارزش یک پروکسی به منشأ همین آدرس برمی‌گردد.

درخواست چگونه از پروکسی عبور می‌کند؟

چون بیشتر ترافیک وب امروز HTTPS است، یک درخواست HTTPS را مثال می‌زنیم. در مرورگر شما پروکسی تنظیم شده و https://example.com را باز می‌کنید:

  1. کلاینت به پروکسی وصل می‌شود. مرورگر به‌جای سایت مقصد، یک اتصال TCP با آدرس و پورت پروکسی باز می‌کند.
  2. درخواست تونل ارسال می‌شود. مرورگر درخواست CONNECT example.com:443 را به پروکسی می‌فرستد. این متد در بخش 9.3.6 از ⁦RFC 9110⁩ تعریف شده است. اگر پروکسی احراز هویت بخواهد، درخواست هدر Proxy-Authorization را هم با خود دارد.
  3. پروکسی کلاینت را احراز هویت می‌کند. اگر اطلاعات ورود نادرست باشد، پروکسی پاسخ 407 Proxy Authentication Required می‌دهد و کار متوقف می‌شود. اگر درست باشد، ادامه می‌دهد.
  4. پروکسی با IP خودش به مقصد وصل می‌شود. پروکسی نام example.com را resolve می‌کند، به پورت 443 سرور وصل می‌شود و به مرورگر پاسخ 200 Connection Established می‌دهد. اتصالی که سرور مقصد می‌بیند از IP خروجی پروکسی آمده است.
  5. پاسخ از همان مسیر برمی‌گردد. مرورگر درون همین تونل handshake مربوط به TLS را با سایت انجام می‌دهد و ترافیک رمزنگاری‌شده در هر دو جهت از آن می‌گذرد. پروکسی بایت‌ها را جابه‌جا می‌کند، اما نمی‌تواند محتوای HTTPS را بخواند.

برای آدرس رمزنگاری‌نشده http:// جریان کمی متفاوت است: مرورگر کل درخواست را به پروکسی می‌فرستد و پروکسی آن را می‌خواند و به مقصد می‌فرستد. در این حالت پروکسی هدرها و محتوا را می‌بیند و می‌تواند آن‌ها را در کش نگه دارد. راهنمای MDN درباره سرورهای پروکسی و تونل‌سازی هر دو جریان را با نمودارهای کوتاه نشان می‌دهد.

سریع‌ترین راه برای دیدن کارکرد پروکسی این است که درخواستی به آدرسی بفرستید که IP شما را برمی‌گرداند، یک بار بدون پروکسی و یک بار با آن:

bash
curl https://httpbin.org/ip
curl -x "http://user:pass@pr.proxynet.io:8000" https://httpbin.org/ip

فرمان اول باید IP خود شما و فرمان دوم IP خروجی پروکسی را نشان دهد. اگر هر دو یک آدرس برگردانند، درخواست از پروکسی نمی‌گذرد. گزینه‌های دیگر cURL را در استفاده از پروکسی با cURL آورده‌ایم.

چه انواعی از پروکسی وجود دارد؟

تلاش برای چیدن همه پروکسی‌ها در یک فهرست گیج‌کننده است، چون «مسکونی»، «SOCKS5» و «چرخشی» به پرسش‌های متفاوتی پاسخ می‌دهند. یک پروکسی می‌تواند هم‌زمان هر سه باشد. دقیق‌تر این است که انواع را با سه پرسش از هم جدا کنیم.

پرسشنوعمعنا
با کدام پروتکل کار می‌کند؟HTTP و HTTPSدرخواست‌های وب را می‌فهمد؛ برای HTTPS تونل CONNECT باز می‌کند
SOCKS5هر ترافیک TCP و UDP را بدون بررسی جابه‌جا می‌کند
آدرس IP از کجا می‌آید؟دیتاسنترIPهای متعلق به سرورهای دیتاسنتر
مسکونیIPهایی که ارائه‌دهندگان اینترنت به کاربران خانگی می‌دهند
ISP (مسکونی ثابت)IPهای ثابت ثبت‌شده به نام ISP که در دیتاسنتر میزبانی می‌شوند
موبایلIPهای شبکه‌های نسل چهارم و پنجم اپراتورهای موبایل
آدرس IP کی عوض می‌شود؟چرخشیIP تازه در هر درخواست یا در بازه‌های مشخص
Stickyهمان IP برای مدتی مشخص
ثابتهمان IP تا وقتی آن را آزاد کنید

انتخاب پروتکل به ترافیک شما بستگی دارد. برای مرورگرها و کتابخانه‌های اسکرپینگ، پروکسی HTTPS کافی است؛ کلاینت بازی، برنامه‌های دسکتاپ و ترافیک UDP به پروکسی SOCKS5 نیاز دارند. شرح بیشتر در پروکسی SOCKS5: چطور کار می‌کند و چه فرقی دارد آمده است.

منشأ IP تعیین می‌کند سایت مقصد شما را چگونه می‌بیند. پروکسی دیتاسنتر سریع و قابل پیش‌بینی است، اما ثبت‌های عمومی نشان می‌دهند بلوک‌های IP آن متعلق به دیتاسنتر است. پروکسی مسکونی از اتصال‌های خانگی معمولی به اینترنت می‌رود. پروکسی ISP میان این دو قرار دارد: آدرس ISP که ثابت می‌ماند. پروکسی موبایل از شبکه اپراتوری می‌آید که در آن کاربران واقعی زیادی یک IP مشترک دارند.

چرخش بر اساس نیاز کار به نشست انتخاب می‌شود. برای کاری که هزاران صفحه مستقل را می‌گیرد پروکسی چرخشی مناسب است؛ برای جریانی که با حساب واردشده انجام می‌شود و IP نباید عوض شود، پروکسی با نشست ثابت.

IPv4 و IPv6 محور دیگری هستند؛ تفاوت مخزن آدرس و سازگاری را در پروکسی IPv4 یا IPv6 توضیح داده‌ایم. برای پروکسی‌هایی که فقط به شما اختصاص دارند و با کسی مشترک نیستند، پروکسی خصوصی را ببینید.

پروکسی به چه کاری می‌آید؟

کارکرد پروکسی در یک جمله خلاصه می‌شود: «درخواست را از آدرس IP دیگری بفرست». کاربردها از پیامدهای مختلف همین کارکرد می‌آیند:

  • دیدن محتوا بر اساس موقعیت. نتایج جست‌وجو، قیمت‌ها و تبلیغات با کشور و حتی شهر بازدیدکننده تغییر می‌کنند. تیمی در استانبول فقط با IP خروجی در آلمان می‌تواند چیزی را ببیند که کاربر آلمانی می‌بیند. برای تفاوت‌ها در داخل ترکیه، صفحه موقعیت‌های ترکیه را ببینید.
  • توزیع جمع‌آوری داده. وقتی اسکریپت وب اسکرپینگ از یک IP صدها درخواست در دقیقه می‌فرستد، سایت مقصد محدودیت نرخ اعمال می‌کند. مجموعه‌ای از پروکسی‌ها درخواست‌ها را میان آدرس‌های مختلف پخش می‌کند. بخش‌های دیگر جمع‌آوری داده در چارچوب قواعد را در وب اسکرپینگ بدون مسدود شدن توضیح داده‌ایم.
  • کنترل دسترسی و ثبت رویداد. شبکه‌های سازمانی ترافیک اینترنت کارکنان را از پروکسی عبور می‌دهند تا تعیین کنند به کدام دامنه‌ها می‌توان رفت و لاگ نگه دارند. همکاری پروکسی با فایروال در این ساختار در پروکسی و فایروال آمده است.
  • جدا نگه‌داشتن حساب‌ها. آژانسی که حساب‌های شبکه‌های اجتماعی چند مشتری را مدیریت می‌کند، هر حساب را با IP ثابت و پروفایل مرورگر خودش باز می‌کند. بخش مرورگری این ساختار در مرورگر آنتی‌دیتکت چیست؟ آمده است.
  • آزمودن برنامه‌ها از شبکه‌های دیگر. بررسی اینکه اپ موبایل یا سایت در کشورهای دیگر چگونه باز می‌شود و محلی‌سازی درست کار می‌کند یا نه.
  • کش. در ترافیک HTTP رمزنگاری‌نشده، پروکسی با نگه‌داشتن فایل‌های پرتقاضا و ارائه دوباره آن‌ها در مصرف باند صرفه‌جویی می‌کند. با گسترش HTTPS این کاربرد به شبکه‌های سازمانی محدود شده است.

سناریوهای کسب‌وکار را در صفحه راه‌حل‌ها گرد آورده‌ایم.

پروکسی چه کاری نمی‌کند؟

بیشتر انتظارهای نادرست از پروکسی از این فرض می‌آید که «اگر IP مرا پنهان کند، همه‌چیز را پنهان می‌کند». سرور پروکسی به‌تنها:

  • ترافیک را رمزنگاری نمی‌کند. پروکسی HTTP یا SOCKS5 ترافیک را همان‌طور که هست جابه‌جا می‌کند. وقتی به سایت HTTPS وصل می‌شوید، محتوا از قبل با اتصال TLS خود سایت رمزنگاری شده است؛ در آدرس رمزنگاری‌نشده http:// ترافیک در پروکسی و در طول مسیر قابل خواندن است. ساختاری که همه ترافیک دستگاه را رمزنگاری می‌کند VPN است.
  • ناشناسی کامل نمی‌دهد. سایت مقصد IP شما را نمی‌بیند، اما حسابی که با آن وارد شده‌اید، کوکی‌ها و اثر انگشت مرورگر همچنان شما را شناسایی می‌کنند. سازوکار اثر انگشت را در اثر انگشت مرورگر توضیح داده‌ایم.
  • نشت IP از کانال‌های دیگر مرورگر را نمی‌بندد. حتی با پروکسی روشن، WebRTC و پرس‌وجوهای DNS می‌توانند آدرس واقعی شما را فاش کنند. آزمون و راه‌حل در نشت WebRTC و DNS آمده است.
  • قواعد سایت را برنمی‌دارد. IP متفاوت اجازه نمی‌دهد از شرایط استفاده، قواعد robots.txt یا محدودیت‌های قانونی بیرون بروید.
  • اتصال شما را سریع‌تر نمی‌کند. یک ایستگاه به مسیر اضافه می‌شود؛ اگر پروکسی به مقصد نزدیک نباشد، تأخیر بیشتر می‌شود. افزایش سرعت فقط در ترافیک رمزنگاری‌نشده و با وجود کش ممکن است.

اتصال پروکسی کی کند می‌شود؟

کندی‌ای که با پروکسی احساس می‌شود معمولاً از مسیر درخواست می‌آید، نه از پروتکل. اگر از رایانه‌ای در ترکیه از طریق پروکسی در آمریکا به سایتی بروید که آن هم در ترکیه است، بسته‌ها دو بار از اقیانوس می‌گذرند. عوامل اصلی تأخیر این‌ها هستند:

  • فاصله پروکسی تا مقصد. نقطه خروج هر چه به سرور مقصد نزدیک‌تر باشد، اولین بایت زودتر می‌رسد.
  • نوع IP. IPهای مسکونی و موبایل از خطوط کاربران واقعی خارج می‌شوند، پس کیفیت خط متغیر است؛ IPهای دیتاسنتر قابل پیش‌بینی‌ترند.
  • بسامد چرخش. IP تازه در هر درخواست می‌تواند یعنی اتصال تازه در هر درخواست. کاری که درخواست‌های زیادی به یک سایت می‌فرستد با استفاده دوباره از اتصال سریع‌تر است.
  • خطاهای احراز هویت. هر تلاش با رمز نادرست یک رفت‌وبرگشت با پاسخ 407 هزینه دارد. روش‌ها و علت‌های این خطا را در احراز هویت پروکسی آورده‌ایم.

برای سنجش سرعت، به‌جای حدس زدن به درخواست‌های خودتان نگاه کنید. گزینه -w در cURL زمان اتصال و زمان اولین بایت را جداگانه چاپ می‌کند:

bash
curl -x "http://user:pass@pr.proxynet.io:8000" -o /dev/null -s \
  -w "connect: %{time_connect}s  first byte: %{time_starttransfer}s  total: %{time_total}s\n" \
  https://httpbin.org/ip

اجرای چندباره همین فرمان با نقاط خروج در موقعیت‌های مختلف نشان می‌دهد کدام موقعیت برای کار شما مناسب است.

اشتباهات رایج در استفاده از پروکسی

  • کدگذاری نکردن نویسه خاص در رمز. اگر رمز شامل @ یا : باشد، آدرس پروکسی نادرست تفسیر می‌شود. درون آدرس، @ باید به‌صورت %40 نوشته شود.
  • فرض اینکه پروکسی کار می‌کند. ممکن است برنامه تنظیم پروکسی را نادیده بگیرد. آزمون IP بالا را برای هر ابزار تازه یک بار اجرا کنید.
  • استفاده از پروکسی چرخشی در کاری که نشست لازم دارد. اگر پس از ورود به حساب IP عوض شود، سایت ممکن است نشست را ببندد یا تأیید بخواهد.
  • ناسازگاری موقعیت با نشانه‌های دیگر. مرورگری با IP خروجی در آلمان اما زبان ترکی و منطقه زمانی استانبول، تصویر ناهمخوانی از بازدیدکننده می‌سازد.
  • resolve محلی DNS با SOCKS5. طرح socks5:// نام دامنه‌ها را در شبکه خود شما resolve می‌کند، پس دامنه‌ها به‌صورت محلی دیده می‌شوند. resolve از راه دور با socks5h:// انجام می‌شود.
  • پورت پروتکل نادرست. اتصال به پورت HTTP با SOCKS5 یا برعکس، خطای اتصال گیج‌کننده‌ای می‌دهد. ارائه‌دهندگان معمولاً برای دو پروتکل پورت جداگانه می‌دهند.

چگونه پروکسی انتخاب کنیم؟

پاسخ دادن به این پرسش‌ها به ترتیب، انتخاب را آسان می‌کند: ترافیک من وب است یا نه؟ سایت مقصد تا چه اندازه به نوع IP حساس است؟ کار من نشست لازم دارد؟ باید از کدام کشور و کدام شهر دیده شوم؟ جدول زیر نیازهای رایج را خلاصه می‌کند.

راهنمای انتخاب

نیاز شماپیشنهاد
دیدن یک سایت از کشوری دیگر در مرورگرHTTPS، مسکونی یا ISP
جمع‌آوری داده از صفحه‌های مستقل فراوانHTTPS، مسکونی چرخشی
نشست‌های طولانی با حساب‌های واردشدهSticky یا ISP ثابت
مقصدهای پرحجمی که به نوع IP حساس نیستنددیتاسنتر
اپ موبایل یا ترافیکی که باید موبایلی به نظر برسدپروکسی موبایل
کلاینت بازی، برنامه دسکتاپ، UDPSOCKS5
رمزنگاری همه ترافیک دستگاهنه پروکسی، بلکه VPN

پرسش‌های متداول

آیا پروکسی همان VPN است؟

نه. هر دو ترافیک شما را از آدرس دیگری خارج می‌کنند، اما VPN همه ترافیک میان دستگاه شما و سرور VPN را رمزنگاری می‌کند و معمولاً در سطح سیستم‌عامل کار می‌کند. پروکسی برای هر برنامه جداگانه تنظیم می‌شود و خودش چیزی را رمزنگاری نمی‌کند.

آیا استفاده از پروکسی قانونی است؟

فناوری پروکسی قانونی است و در سراسر اینترنت، از شبکه‌های سازمانی تا شبکه‌های توزیع محتوا، به کار می‌رود. آنچه مسئولیت قانونی را تعیین می‌کند کاری است که با آن انجام می‌دهید: نقض شرایط سایت، جمع‌آوری داده شخصی بدون اجازه یا دسترسی به محتوای غیرقانونی از طریق پروکسی هم همان پیامدها را دارد. برای چارچوب این موضوع در جمع‌آوری داده، آیا وب اسکرپینگ قانونی است؟ را ببینید.

آیا پروکسی‌های رایگان امن هستند؟

هیچ‌کس نمی‌داند پروکسی‌های رایگانی که در فهرست‌های عمومی پخش می‌شوند را چه کسی اداره می‌کند. آن‌ها می‌توانند ترافیک رمزنگاری‌نشده را بخوانند، محتوایی به پاسخ‌ها تزریق کنند یا جزئیات اتصال شما را ثبت کنند. چون هزاران نفر از یک IP استفاده می‌کنند، بیشتر سایت‌ها این آدرس‌ها را از قبل مسدود کرده‌اند. در هر کاری که رمز وارد می‌کنید از پروکسی با منشأ نامعلوم استفاده نکنید.

آیا پروکسی آدرس IP مرا کاملاً پنهان می‌کند؟

آدرسی را که سایت مقصد در اتصال HTTP می‌بیند عوض می‌کند. اما اگر مرورگر از طریق WebRTC یا DNS نشت داشته باشد، اگر در حسابتان وارد شده باشید یا کوکی‌هایتان باقی باشد، سایت همچنان می‌تواند شما را بشناسد. عوض کردن IP را بخشی از حریم خصوصی بدانید، نه همه آن.

از کجا بفهمم پروکسی من کار می‌کند؟

صفحه‌ای را که آدرس IP شما را نشان می‌دهد یک بار با پروکسی خاموش و یک بار روشن باز کنید. اگر دو نتیجه متفاوت باشند، پروکسی فعال است. آزمون خط فرمان با curl -x در بالا آمده است؛ در مرورگر هم با باز کردن همان صفحه می‌توانید آزمایش کنید.

آیا انواع پروکسی را می‌توان به‌جای یکدیگر به کار برد؟

تا حدی. چون پروتکل، منشأ IP و چرخش محورهای جداگانه‌اند، انتخابی میان «مسکونی یا SOCKS5» وجود ندارد؛ یک پروکسی مسکونی می‌تواند هم پورت HTTP و هم پورت SOCKS5 داشته باشد. آنچه جایگزین‌پذیر نیست منشأ IP است: هیچ تنظیمی IP دیتاسنتر را مسکونی نشان نمی‌دهد.

خلاصه

سرور پروکسی واسطه‌ای است که درخواست شما را با آدرس IP خودش به مقصد می‌رساند. در سایت‌های HTTPS تونل CONNECT باز می‌کند و محتوا را نمی‌بیند؛ در سایت‌های رمزنگاری‌نشده درخواست را می‌خواند و ارسال می‌کند. راه فهم انواع پروکسی این است که پروتکل، منشأ IP و چرخش را پرسش‌های جداگانه بدانید. پروکسی رمزنگاری نمی‌کند، به‌تنها ناشناسی نمی‌دهد و قواعد سایت را برنمی‌دارد؛ اما اگر درست به کار رود، کارهای زیادی از دیدن محتوای وابسته به موقعیت تا جمع‌آوری داده را ممکن می‌کند. برای انتخاب نوع مناسب نیازتان، نگاهی به خدمات پروکسی ما بیندازید.

پرسش از ChatGPTپرسش از Claude