Skip to content
Advanced / 2 min read

چگونه از پروکسی SOCKS5 در کروم با نام کاربری و رمز عبور استفاده کنیم (روش پل محلی)

کروم نمی‌تواند اعتبارنامه‌های SOCKS5 را ارسال کند، بنابراین پروکسی‌های احراز هویت‌شده از همان ابتدا کار نمی‌کنند. این راهنما یک پل محلی با gost یا Privoxy می‌سازد که نام کاربری و رمز عبور IPRoyal شما را نگه می‌دارد و ترافیک کروم را از طریق پروکسی هدایت می‌کند.

Windows macOS SOCKS5 حریم خصوصی/ناشناسی

نمای کلی

کروم و سایر مرورگرهای Chromium می‌توانند از پروکسی SOCKS5 از طریق فلگ --proxy-server استفاده کنند، اما نمی‌توانند نام کاربری و رمز عبور SOCKS5 را ارسال کنند. در کروم هیچ پنجره‌ای برای وارد کردن اعتبارنامه‌های SOCKS5 وجود ندارد و افزونه‌های رایج پروکسی فقط پروکسی‌های HTTP و HTTPS را احراز هویت می‌کنند. اگر پروکسی شما نیاز به ورود داشته باشد، کروم یا با ERR_PROXY_CONNECTION_FAILED شکست می‌خورد یا بدون اعتبارنامه وصل می‌شود و رد می‌شود.

راه‌حل یک پل محلی است: یک فورواردر کوچک که به 127.0.0.1 گوش می‌دهد، ترافیک بدون احراز هویت را از کروم می‌پذیرد و آن را به endpoint بالادستی SOCKS5 احراز هویت‌شده ارسال می‌کند. کروم هرگز اعتبارنامه‌ها را نمی‌بیند و پشته شبکه مرورگر هرگز مستقیماً با بالادست ارتباط برقرار نمی‌کند.

رفتار هر روش پروکسی در کروم

روش اعتبارنامه‌های SOCKS5 را مدیریت می‌کند یادداشت‌ها
فلگ --proxy-server="socks5://..." خیر DNS را در پروکسی resolve می‌کند، اما وقتی بالادست نیاز به احراز هویت داشته باشد شکست می‌خورد
تنظیم پروکسی سیستم‌عامل یا سیستم خیر همان محدودیت، و روی همه برنامه‌ها اثر می‌گذارد نه فقط یک پروفایل مرورگر
افزونه پروکسی خیر بیشتر افزونه‌ها فقط از احراز هویت HTTP و HTTPS پشتیبانی می‌کنند
فهرست مجاز IP نزد ارائه‌دهنده لازم نیست فقط اگر پلن و پیکربندی شما از آن پشتیبانی کند کار می‌کند
پل محلی (این آموزش) بله اعتبارنامه‌ها روی دستگاه شما می‌مانند؛ کروم با localhost صحبت می‌کند

پیش‌نیازها

  • نصب Chrome یا Chromium که بتوانید از خط فرمان اجرا کنید
  • اعتبارنامه‌های SOCKS5 IPRoyal: هاست دروازه، پورت، نام کاربری، رمز عبور از داشبورد شما
  • یک فورواردر محلی: gost (توصیه‌شده) یا Privoxy
  • مجوز اجرای یک شنونده متصل به 127.0.0.1

مراحل

  1. بررسی کنید آیا فهرست مجاز IP مشکل را کاملاً برطرف می‌کند. برخی ارائه‌دهندگان به شما اجازه می‌دهند به‌جای ارسال اعتبارنامه، یک آدرس IP ثابت را مجاز کنید. داشبورد IPRoyal خود را باز کنید و تأیید کنید که آن گزینه برای پلنی که استفاده می‌کنید وجود دارد. اگر وجود دارد و IP عمومی شما ثابت است، می‌توانید پل را نادیده بگیرید و مستقیماً از فلگ --proxy-server استفاده کنید.

  2. یک فورواردر محلی نصب کنید. gost در هر دو جهت SOCKS5 صحبت می‌کند و به‌صورت یک باینری واحد ارائه می‌شود، که آن را به ساده‌ترین انتخاب تبدیل می‌کند.

  • ویندوز: باینری gost را از صفحه انتشار رسمی آن دانلود کنید و آن را به PATH خود اضافه کنید
  • macOS: اگر بسته‌ای موجود است gost را با مدیر بسته خود نصب کنید، در غیر این صورت باینری را دانلود کنید
  • لینوکس: باینری را از صفحه انتشار نصب کنید، یا اگر بسته توزیع موجود است از آن استفاده کنید
  1. پل را راه‌اندازی کنید. روی یک پورت loopback بدون احراز هویت گوش می‌دهد و همه‌چیز را به بالادست احراز هویت‌شده ارسال می‌کند.
gost -L socks5://127.0.0.1:1080 -F 'socks5://USERNAME:PASSWORD@GATEWAY_HOST:GATEWAY_PORT'

در Windows PowerShell، URL بالادست را داخل کوتیشن بگذارید:

gost -L socks5://127.0.0.1:1080 -F "socks5://USERNAME:PASSWORD@GATEWAY_HOST:GATEWAY_PORT"

این فرایند را تا زمانی که مرور می‌کنید در پنجره ترمینال خودش در حال اجرا رها کنید.

  1. قبل از دست زدن به کروم، پل را بررسی کنید. این درخواست از پل عبور می‌کند، بنابراین آدرس برگشتی باید IP خروجی پروکسی باشد، نه آدرس ISP شما.
curl --socks5-hostname 127.0.0.1:1080 https://api.ipify.org

اگر دستور معلق ماند، پل در حال ارسال نیست. اگر خطای احراز هویت برگرداند، اعتبارنامه‌های بالادست اشتباه هستند.

  1. کروم را از طریق پل اجرا کنید. از یک پروفایل اختصاصی استفاده کنید تا مرور روزمره شما دست‌نخورده بماند و فلگ به جلسه عادی شما نفوذ نکند.

macOS:

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --proxy-server="socks5://127.0.0.1:1080" \
  --user-data-dir="$HOME/.chrome-proxy-profile"

لینوکس:

google-chrome \
  --proxy-server="socks5://127.0.0.1:1080" \
  --user-data-dir="$HOME/.chrome-proxy-profile"

ویندوز:

& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
  --proxy-server="socks5://127.0.0.1:1080" `
  --user-data-dir="$env:TEMP\chrome-proxy-profile"
  1. IP خروجی را داخل کروم تأیید کنید. در پنجره جدید یک صفحه جستجوی IP باز کنید و آدرس را با آدرسی که curl برگردانده مقایسه کنید. باید یکسان باشند. اگر کروم IP واقعی شما را نشان می‌دهد، بخش عیب‌یابی را ببینید.

  2. یک لانچر قابل استفاده مجدد بسازید تا فلگ‌ها را دوباره تایپ نکنید. در macOS یا Linux، دستور را در یک اسکریپت shell یا alias ذخیره کنید. در Windows، یک میانبر بسازید که هدفش شامل فلگ‌ها و مسیر --user-data-dir باشد.

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

جایگزین: Privoxy به‌عنوان فرانت‌اند

اگر به یک پروکسی HTTP در جلوی بالادست SOCKS5 نیاز دارید، چون ابزار یا افزونه‌ای که استفاده می‌کنید فقط با پروکسی‌های HTTP کار می‌کند، Privoxy می‌تواند تبدیل را انجام دهد.

این خطوط را به فایل پیکربندی آن اضافه کنید:

listen-address 127.0.0.1:8118
forward-socks5t / USERNAME:PASSWORD@GATEWAY_HOST:GATEWAY_PORT .

سپس کروم را به شنونده HTTP محلی اشاره دهید:

google-chrome --proxy-server="http://127.0.0.1:8118" --user-data-dir="$HOME/.chrome-privoxy-profile"

forward-socks5t حل DNS را در سمت پروکسی نگه می‌دارد، که وقتی محتوای مخصوص منطقه را بررسی می‌کنید اهمیت دارد.

عیب‌یابی

  • ERR_PROXY_CONNECTION_FAILED: پل در حال اجرا نیست، پورت اشتباه است، یا کروم به جای 127.0.0.1 به نقطه پایانی بالادست اشاره شده است.
  • کروم فلگ‌ها را نادیده می‌گیرد: ممکن است یک فرایند موجود Chrome پنجره جدید را بلعیده باشد. همه پنجره‌های Chrome و فرایندهای پس‌زمینه را ببندید، سپس دوباره اجرا کنید. یک --user-data-dir متمایز از این جلوگیری می‌کند.
  • صفحات بارگذاری می‌شوند اما IP واقعی شما را نشان می‌دهند: تأیید کنید که در پروفایلی هستید که با فلگ اجرا کرده‌اید. افزونه‌هایی که تنظیمات پروکسی را کنترل می‌کنند، خط‌مشی سازمانی، و اسکریپت‌های PAC می‌توانند پروکسی خط فرمان را بازنویسی کنند.
  • اعتبارنامه‌ها در بالادست رد می‌شوند: کاراکترهای ویژه را در رمز عبور percent-encode کنید (@ به %40 و : به %3A تبدیل می‌شود) یا اگر فورواردر شما پشتیبانی می‌کند، بالادست را به‌صورت گزینه‌های جداگانه ارسال کنید.
  • برخی سایت‌ها در بارگذاری اول معطل می‌مانند: ارسال SOCKS5 TCP را پوشش می‌دهد، نه UDP، و Chrome ممکن است QUIC روی UDP را امتحان کند. اگر سایتی قبل از رندر timeout می‌شود، با --disable-quic اجرا کنید.
  • WebRTC آدرس‌های محلی را افشا می‌کند: پروکسی SOCKS5 WebRTC را پوشش نمی‌دهد. مدیریت IP WebRTC را از طریق خط‌مشی سازمانی روی disable_non_proxied_udp تنظیم کنید، یا آن را با خط‌مشی مرورگر یا افزونه مدیریت کنید.
  • پل از شبکه شما قابل دسترسی است: همیشه به 127.0.0.1 متصل کنید، هرگز 0.0.0.0. هر کسی که بتواند به شنونده برسد می‌تواند از حساب پروکسی شما استفاده کند.

خلاصه

کروم نمی‌تواند اعتبارنامه‌های SOCKS5 را ارسال کند، بنابراین پاسخ عملی یک پل محلی است: gost یا Privoxy روی loopback گوش می‌دهد، نام کاربری و رمز عبور IPRoyal را نگه می‌دارد، و ترافیک کروم را به بالادست SOCKS5 احراز هویت‌شده ارسال می‌کند. قبل از اجرای مرورگر، IP خروجی را با curl بررسی کنید، از یک --user-data-dir جداگانه استفاده کنید، و هر زمان به IP جدید یا کشور متفاوت نیاز داشتید پل را دوباره راه‌اندازی کنید.