ProxynetProxynet

تنظیم پروکسی در ویندوز و کروم

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

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

Acar Diveroli
نویسنده: Acar Diveroli
رایانه‌ای که به پنل تنظیمات دارای کلیدها وصل است و آن پنل به پنجره مرورگر می‌رسد

اگر در تنظیمات کروم دنبال فیلدی برای نوشتن آدرس پروکسی بگردید، پیدایش نمی‌کنید. کروم در ویندوز تنظیم پروکسی جداگانه‌ای نگه نمی‌دارد؛ تنظیم پروکسی سیستم‌عامل را می‌خواند و پیوند موجود در Settings > System شما را مستقیم به صفحه تنظیمات ویندوز می‌برد. پس «تنظیم پروکسی کروم» معمولاً یعنی «تنظیم پروکسی ویندوز» و تغییری که آنجا بدهید بر برنامه‌های دیگری که از تنظیم سیستم استفاده می‌کنند هم، از Edge تا برخی برنامه‌های دسکتاپ، اثر می‌گذارد.

در این نوشته توضیح می‌دهیم کروم تنظیم پروکسی را از کجا می‌گیرد، چگونه در ویندوز 11 گام‌به‌گام پروکسی تنظیم کنید و با پروکسی‌های نیازمند نام کاربری و رمز چه اتفاقی می‌افتد. سپس روش‌های خط فرمان (از جمله تفاوتی که اغلب اشتباه گرفته می‌شود میان netsh winhttp و setx HTTP_PROXY)، باز کردن یک‌باره کروم با پروکسی دیگر، خاموش کردن پروکسی و رفع رایج‌ترین پیام‌های خطا را بررسی می‌کنیم.

کروم تنظیم پروکسی را از کجا می‌گیرد؟

سند تنظیمات شبکه پروژه Chromium به‌روشنی می‌گوید کروم برای تنظیمات شبکه‌ای مانند پروکسی از تنظیمات سیستم استفاده می‌کند. فکر پشت آن این است که کاربران و مدیران بتوانند تنظیمات شبکه همه برنامه‌ها را در یک جا مدیریت کنند. در ویندوز آن جا صفحه پروکسی در برنامه Settings است.

کروم به این ترتیب اولویت تصمیم می‌گیرد کدام تنظیم پروکسی را به کار ببرد:

  1. سیاست سازمانی. اگر رایانه را سازمانی مدیریت می‌کند و پروکسی با سیاست تعیین شده، کروم همان تنظیم را به کار می‌برد و کاربر نمی‌تواند آن را تغییر دهد.
  2. افزونه. اگر افزونه‌ای برای مدیریت پروکسی نصب شده، تنظیم را آن کنترل می‌کند. در تنظیمات کروم هشداری با مضمون «این تنظیم را یک افزونه کنترل می‌کند» دیده می‌شود.
  3. پارامتر راه‌اندازی. اگر کروم با پارامتر --proxy-server یا --no-proxy-server باز شده باشد، آن نشست همان تنظیم را به کار می‌برد.
  4. تنظیم سیستم ویندوز. اگر هیچ‌کدام از این‌ها نباشد، کروم تنظیم پروکسی ویندوز را می‌خواند.

برای فهم اینکه چرا پروکسی در کروم آن‌طور که انتظار دارید رفتار نمی‌کند، نخست به این ترتیب نگاه کنید. فایرفاکس اما می‌تواند تنظیم پروکسی جداگانه داشته باشد؛ شیوه تنظیم آن در تنظیمات پروکسی فایرفاکس آمده است.

چگونه در ویندوز 11 پروکسی تنظیم کنیم؟

گام‌های زیر از جریان صفحه پشتیبانی مایکروسافت با عنوان Use a proxy server in Windows پیروی می‌کنند. بسته به نسخه ویندوز و بسته زبانی ممکن است برخی نام‌ها متفاوت دیده شوند.

  1. روی منوی Start راست‌کلیک کنید و Settings را باز کنید یا کلیدهای Windows + I را بزنید.
  2. در منوی سمت چپ Network & internet را انتخاب کنید.
  3. بخش Proxy را در پایین صفحه باز کنید.
  4. کنار Manual proxy setup روی Set up بزنید. در برخی نسخه‌ها به‌جای این گام مستقیم یک کلید دیده می‌شود.
  5. Use a proxy server را روشن کنید.
  6. آدرس سرور (pr.proxynet.io) را در Proxy IP address و پورت (8000) را در Port بنویسید.
  7. در صورت نیاز آدرس‌هایی را که نباید از پروکسی بگذرند با نقطه‌ویرگول انگلیسی در فهرست پایین بنویسید، مثلاً localhost;127.0.0.1;*.company.local.
  8. اگر سرویس‌های شبکه داخلی دارید، Don't use the proxy server for local (intranet) addresses را علامت بزنید.
  9. روی Save بزنید.

همین صفحه دو گزینه دیگر هم دارد. Automatically detect settings اگر شبکه شما پیکربندی خودکار ارائه دهد آن را به کار می‌برد؛ بیرون از شبکه سازمانی معمولاً می‌تواند خاموش بماند. Use setup script آدرس یک فایل PAC را می‌خواهد؛ در ساختارهای سازمانی به کار می‌رود که قواعدی تعیین می‌کنند کدام آدرس از کدام پروکسی بگذرد.

پس از ذخیره معمولاً لازم نیست کروم را دوباره راه‌اندازی کنید، اما اتصال‌های زبانه‌های باز ممکن است با تنظیم قبلی ساخته شده باشند. برای آزمودن تنظیم، صفحه بررسی IP را در زبانه تازه باز کنید.

با پروکسی دارای احراز هویت چه می‌شود؟

صفحه پروکسی ویندوز فیلد نام کاربری و رمز ندارد. وقتی پروکسی‌ای را تنظیم می‌کنید که نام کاربری و رمز می‌خواهد:

  1. کروم درخواست نخست را به پروکسی می‌فرستد.
  2. پروکسی پاسخ 407 Proxy Authentication Required برمی‌گرداند.
  3. کروم پنجره ورود نشان می‌دهد و نام کاربری و رمز را می‌خواهد.
  4. پس از وارد کردن، کروم اطلاعات را در طول نشست به خاطر می‌سپارد و درخواست‌های بعدی را احرازشده می‌فرستد.

این شیوه دو محدودیت دارد. نخست، ممکن است پنجره با هر بار بستن و باز کردن کروم دوباره ظاهر شود. دوم، برنامه‌های دسکتاپ و سرویس‌های پس‌زمینه‌ای که تنظیم پروکسی سیستم را می‌خوانند اما نمی‌توانند چنین پنجره‌ای نشان دهند، وصل نمی‌شوند.

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

کروم برای پروکسی‌های SOCKS5 از احراز هویت با نام کاربری و رمز پشتیبانی نمی‌کند. اگر می‌خواهید SOCKS5 را با کروم به کار ببرید، به لیست سفید IP نیاز دارید.

چگونه از خط فرمان پروکسی تنظیم کنیم؟

سه راه متفاوت برای تنظیم پروکسی از خط فرمان ویندوز وجود دارد و هر کدام بر برنامه‌های متفاوتی اثر می‌گذارد. این تمایز نادیده‌گرفته‌شده‌ترین بخش موضوع است.

روشبر چه چیزی اثر دارد؟آیا بر کروم اثر دارد؟کاربرد رایج
تنظیمات ویندوز (پروکسی کاربر)کروم، Edge و برنامه‌هایی که تنظیم سیستم را می‌خوانندبلهاستفاده روزمره از مرورگر
netsh winhttp set proxyسرویس‌هایی که WinHTTP را به کار می‌برند (مانند Windows Update)نهسرورها و سرویس‌های پس‌زمینه
setx HTTPS_PROXYابزارهای خط فرمانی که متغیر محیطی می‌خوانندنهcURL، Git، Python، Node.js، npm
پارامتر --proxy-server در کرومفقط همان نشست کرومبله، فقط همان نشستآزمون، استفاده یک‌باره

netsh winhttp: بر سرویس‌ها اثر دارد نه بر مرورگر

فرمان netsh winhttp تنظیم پروکسی برنامه‌هایی را که کتابخانه WinHTTP ویندوز را به کار می‌برند تغییر می‌دهد. WinHTTP را سرویس‌هایی که بدون نشست کاربر اجرا می‌شوند و برخی مؤلفه‌های سیستم به کار می‌برند. مستندات netsh winhttp مایکروسافت نحو فرمان را آورده است:

powershell
# تنظیم پروکسی WinHTTP (در ترمینالی که با دسترسی مدیر باز شده)
netsh winhttp set proxy pr.proxynet.io:8000 "<local>"

# نمایش تنظیم فعلی WinHTTP
netsh winhttp show proxy

# حذف پروکسی WinHTTP
netsh winhttp reset proxy

اجرای این فرمان و دیدن اینکه IP شما در کروم عوض نشده بسیار رایج است. دلیلش این است که کروم پروکسی کاربر را از صفحه Settings می‌خواند، نه تنظیم WinHTTP را. netsh winhttp را فقط وقتی به کار ببرید که یک سرویس ویندوز باید از پروکسی بگذرد.

setx: متغیرهای محیطی برای ابزارهای خط فرمان

بیشتر برنامه‌های خط فرمان مانند cURL، Git، کتابخانه‌های پایتون و ابزارهای Node.js پروکسی را از متغیرهای محیطی HTTP_PROXY و HTTPS_PROXY می‌خوانند. setx این متغیرها را به‌طور دائم در حساب کاربری می‌نویسد:

powershell
setx HTTPS_PROXY "http://user:pass@pr.proxynet.io:8000"
setx HTTP_PROXY "http://user:pass@pr.proxynet.io:8000"
setx NO_PROXY "localhost,127.0.0.1"

سه نکته مهم:

  • setx متغیر را در ترمینال‌هایی اعمال می‌کند که از این پس باز شوند. پنجره‌ای که فرمان را در آن اجرا کرده‌اید همان مقدار قبلی را به کار می‌برد.
  • کروم و تنظیمات ویندوز این متغیرها را نمی‌خوانند.
  • رمز به‌صورت متن ساده در متغیر محیطی می‌ماند و برنامه‌های دیگر رایانه می‌توانند آن را بخوانند. در رایانه‌های مشترک لیست سفید IP را ترجیح دهید. اگر رمز نویسه‌ای مانند @ دارد، باید کدگذاری شود (@ به %40).

اگر فقط برای نشست ترمینال باز مقدار موقت می‌خواهید، نوشتن $env:HTTPS_PROXY = "..." در PowerShell کافی است؛ با بسته شدن پنجره مقدار پاک می‌شود. برای آزمودن پروکسی در خط فرمان، استفاده از پروکسی با cURL را ببینید.

تنظیم پروکسی کاربر با PowerShell

پروکسی کاربر در صفحه Settings در رجیستری نگه‌داری می‌شود. برای اعمال سریع همان تنظیم روی چند رایانه می‌توانید از PowerShell استفاده کنید:

powershell
$path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Set-ItemProperty -Path $path -Name ProxyServer -Value "pr.proxynet.io:8000"
Set-ItemProperty -Path $path -Name ProxyOverride -Value "localhost;127.0.0.1;<local>"
Set-ItemProperty -Path $path -Name ProxyEnable -Value 1

این تغییر در صفحه Settings هم دیده می‌شود. ممکن است برنامه‌های باز برای گرفتن تنظیم تازه نیاز به راه‌اندازی دوباره داشته باشند. در محیط‌های سازمانی همین کار با Group Policy یا ابزارهای مدیریت دستگاه انجام می‌شود و تغییر دستی ممکن است با سیاست برگردانده شود.

باز کردن یک‌باره کروم با پروکسی دیگر

وقتی می‌خواهید فقط یک پنجره کروم از پروکسی بگذرد و بقیه سیستم متأثر نشود، پارامترهای راه‌اندازی را به کار ببرید. پارامترهای تعریف‌شده در سند Chromium این‌ها هستند:

  • --proxy-server="address:port" یک پروکسی برای همه ترافیک تعیین می‌کند. برای SOCKS5 شکل socks5://address:port به کار می‌رود.
  • --proxy-bypass-list="localhost;127.0.0.1" آدرس‌هایی را که نباید از پروکسی بگذرند تعیین می‌کند.
  • --no-proxy-server پروکسی را صرف‌نظر از تنظیم سیستم خاموش می‌کند.
  • --proxy-pac-url="http://.../proxy.pac" یک فایل PAC را به کار می‌برد.

دامی مهم وجود دارد: اگر کروم از قبل باز باشد، فرمان راه‌اندازی تازه فقط پنجره‌ای به نمونه در حال اجرا می‌افزاید و پارامترها نادیده گرفته می‌شوند. برای پرهیز از این، پوشه پروفایل جداگانه بدهید:

powershell
& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
  --proxy-server="http://pr.proxynet.io:8000" `
  --proxy-bypass-list="localhost;127.0.0.1" `
  --user-data-dir="$env:TEMP\chrome-proxy-profile"

به لطف --user-data-dir این پنجره با پروفایلی کاملاً جدا از کروم روزمره شما باز می‌شود: کوکی‌ها، تاریخچه و افزونه‌های جداگانه. با به کار بردن پوشه‌های متفاوت برای موقعیت‌های مختلف، می‌توانید هم‌زمان چند پنجره کروم با پروکسی‌های متفاوت باز داشته باشید.

پارامتر --proxy-server نام کاربری و رمز نمی‌پذیرد. اگر پروکسی رمز بخواهد، در درخواست نخست پنجره ورود ظاهر می‌شود. اگر این ساختار را زیاد به کار می‌برید، فرمان را در میان‌بری روی دسکتاپ بگذارید.

اگر می‌خواهید از درون مرورگر مدیریت کنید که سایت‌های مختلف از پروکسی‌های مختلف بگذرند، افزونه SwitchyOmega گزینه کاربردی‌تری است. گزینه عبور دادن برنامه‌های دسکتاپی که تنظیم پروکسی ندارند در Proxifier آمده است.

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

پروکسی را با همان روشی خاموش کنید که روشنش کرده‌اید:

  • تنظیمات ویندوز: در Network & internet > Proxy > Manual proxy setup روی Edit بزنید، Use a proxy server را خاموش کنید و ذخیره کنید.
  • اگر از رجیستری تنظیم کرده‌اید: Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 0
  • WinHTTP: netsh winhttp reset proxy
  • متغیرهای محیطی: setx HTTPS_PROXY "" متغیر را خالی می‌کند اما حذف نمی‌کند. برای حذف کامل در PowerShell:
powershell
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", $null, "User")
[Environment]::SetEnvironmentVariable("HTTP_PROXY", $null, "User")
[Environment]::SetEnvironmentVariable("NO_PROXY", $null, "User")
  • پارامتر کروم: بستن پنجره‌ای که با پارامتر باز شده کافی است؛ کروم معمولی شما متأثر نمی‌شود.
  • افزونه: در صفحه خود افزونه به «اتصال مستقیم» بروید یا افزونه را غیرفعال کنید.

اگر پس از خاموش کردن پروکسی به اینترنت وصل نمی‌شوید، ممکن است منبع دیگری (افزونه، سیاست یا نرم‌افزار VPN یا پروکسی نصب‌شده) تنظیم را دوباره بنویسد.

مشکلات رایج و راه‌حل‌ها

خطا یا نشانهعلت محتملراه‌حل
ERR_PROXY_CONNECTION_FAILEDآدرس یا پورت نادرست، پروکسی از کار افتاده یا شبکه پورت پروکسی را مسدود کردهآدرس و پورت را با پنل مقایسه کنید؛ دسترسی را با Test-NetConnection pr.proxynet.io -Port 8000 بیازمایید
ERR_TUNNEL_CONNECTION_FAILEDپروکسی نتوانسته تونل HTTPS بسازد؛ پورت پروتکل نادرست یا پنجره رمز لغو شدهمطمئن شوید پورت پروکسی HTTP است؛ اطلاعات ورود را در پنجره دوباره وارد کنید
ERR_NO_SUPPORTED_PROXIESنوع پروکسی پشتیبانی‌نشده، مانند SOCKS5 با رمزبرای SOCKS5 لیست سفید IP به کار ببرید یا به پروکسی HTTP بروید
پنجره رمز پیوسته دوباره باز می‌شودنام کاربری یا رمز نادرستمطمئن شوید هنگام کپی از پنل فاصله‌ای نیامده است
«تنظیمات شما را سازمان مدیریت می‌کند»پروکسی با سیاست سازمانی تعیین شدهسیاست‌های پروکسی را در chrome://policy ببینید؛ با تیم فناوری اطلاعات صحبت کنید
آدرس IP عوض نمی‌شوداز netsh winhttp استفاده شده یا افزونه‌ای تنظیم را کنار می‌زندپروکسی کاربر را در صفحه Settings به کار ببرید؛ افزونه‌ها را بررسی کنید
پروکسی خاموش است اما اینترنت نیستبرنامه دیگری تنظیم را دوباره می‌نویسدنرم‌افزارهای پروکسی و VPN نصب‌شده و افزونه‌ها را بررسی کنید
برخی سایت‌ها باز می‌شوند اما سرویس‌های محلی نهآدرس‌های داخلی به پروکسی فرستاده می‌شوندآدرس‌های داخلی را به فهرست استثنا بیفزایید

حتی وقتی پروکسی کار می‌کند، مرورگر ممکن است IP واقعی شما را از راه WebRTC یا پرس‌وجوهای DNS فاش کند. راه‌حل کروم با سیاست WebRtcIPHandling و روش آزمون در نشت WebRTC و DNS آمده است.

کاربردها

  • دیدن سایتی از کشور دیگر در مرورگر: پروکسی سیستم در تنظیمات ویندوز یا پارامتر یک‌باره کروم. برای دید اتصال خانگی واقعی از پروکسی مسکونی استفاده می‌شود.
  • مقایسه دو موقعیت کنار هم روی یک رایانه: دو پنجره کروم با پوشه‌های --user-data-dir متفاوت و مقدارهای --proxy-server متفاوت.
  • حسابی که روزها با همان IP وارد شده است: پروکسی سیستم یا پروفایل جداگانه، همراه پروکسی ISP که آدرس ثابت نگه می‌دارد.
  • عبور دادن ابزارهای خط فرمان از پروکسی: متغیرهای محیطی با setx؛ برای ترافیک وب پروکسی HTTPS.
  • سرویس ویندوزی که باید از پروکسی بگذرد: netsh winhttp set proxy.
  • همین تنظیم روی گوشی: گام‌های آیفون در تنظیمات پروکسی آیفون آمده است.

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

نیاز شماپیشنهاد
عبور دادن کروم و Edge از پروکسیتنظیمات ویندوز > Proxy
فقط یک نشست کروم--proxy-server همراه --user-data-dir
پروکسی متفاوت برای هر سایتافزونه‌ای مانند SwitchyOmega
cURL، Git، Python، Node.jsمتغیرهای محیطی HTTP_PROXY و HTTPS_PROXY
سرویس‌های ویندوز، Windows Updatenetsh winhttp set proxy
همان تنظیم روی چند رایانهرجیستری با PowerShell یا Group Policy
پروکسی رمز می‌خواهد و پنجره را نمی‌خواهیدلیست سفید IP
SOCKS5 با کرومSOCKS5 همراه لیست سفید IP

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

آیا کروم می‌تواند تنظیم پروکسی مستقل از ویندوز داشته باشد؟

صفحه تنظیمات کروم چنین فیلدی ندارد. برای پروکسی مستقل از ویندوز می‌توانید کروم را با پارامتر --proxy-server اجرا کنید یا افزونه مدیریت پروکسی به کار ببرید. هیچ‌کدام بر برنامه‌های دیگر سیستم اثر نمی‌گذارد.

آیا تنظیم پروکسی ویندوز بر همه برنامه‌ها اثر دارد؟

نه. بر برنامه‌هایی اثر دارد که تنظیم سیستم را می‌خوانند: کروم، Edge و برنامه‌هایی که مؤلفه‌های شبکه ویندوز را به کار می‌برند. برنامه‌هایی که تنظیمات شبکه جداگانه دارند (فایرفاکس با تنظیم اختصاصی، بسیاری از کلاینت‌های بازی) و ابزارهای خط فرمانی که متغیر محیطی می‌خوانند متأثر نمی‌شوند.

با پروکسی روشن Microsoft Store یا Windows Update کار نمی‌کند. چرا؟

برخی از این مؤلفه‌ها تنظیم WinHTTP یا تنظیم حساب سیستم را به کار می‌برند و نمی‌توانند پنجره رمز پروکسی کاربر را نشان دهند. اگر از پروکسی دارای رمز استفاده می‌کنید، رفتن به لیست سفید IP یا انجام این به‌روزرسانی‌ها با پروکسی خاموش مشکل را حل می‌کند.

تنظیم پروکسی من خودبه‌خود عوض می‌شود. چرا؟

ممکن است افزونه، نرم‌افزار VPN یا پروکسی نصب‌شده، سیاست سازمانی یا نرم‌افزار ناخواسته آن را دوباره بنویسد. صفحه chrome://policy، افزونه‌های کروم و برنامه‌های نصب‌شده را بررسی کنید. اگر آدرس پروکسی ناآشنایی دیدید، پیشنهاد می‌کنیم یک اسکن امنیتی انجام دهید.

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

صفحه بررسی IP را یک بار با پروکسی روشن و یک بار خاموش باز کنید و دو نتیجه را مقایسه کنید. اگر آدرس‌ها متفاوت باشند، پروکسی فعال است. برای دیدن اینکه کروم کدام تنظیم پروکسی را به کار می‌برد، chrome://net-internals/#proxy را در نوار آدرس بزنید.

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

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

خلاصه

در ویندوز، کروم تنظیم پروکسی را از سیستم‌عامل می‌گیرد، پس تنظیم دائمی در صفحه Settings > Network & internet > Proxy انجام می‌شود. netsh winhttp بر سرویس‌ها اثر دارد نه بر مرورگر، و setx HTTPS_PROXY بر ابزارهای خط فرمان. برای یک نشست کروم، پارامتر --proxy-server را همراه پوشه جداگانه --user-data-dir به کار ببرید. اگر نمی‌خواهید با پنجره رمز سروکار داشته باشید، لیست سفید IP را ترجیح دهید و پس از تنظیم، نشت WebRTC را بیازمایید. برای سازوکار کلی پروکسی سرور پروکسی چیست و چگونه کار می‌کند؟ و برای پلن‌های متناسب استفاده در مرورگر، خدمات پروکسی ما را ببینید.

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