Visual Studio Code قادر است افزونهها، تنظیمات و اسنیپتها را بین دستگاهها همگامسازی کند — اما همه اینها از طریق سرورهای مایکروسافت انجام میشود که اغلب در پشت فایروالهای شرکتی، در شبکههای اداری با فیلترینگ سخت یا از مناطق با دسترسی محدود در دسترس نیستند. نتیجه — بازار افزونهها متوقف میشود، همگامسازی تنظیمات متصل نمیشود، و بهروزرسانیها دانلود نمیشوند. در این مقاله بررسی میکنیم که چگونه پروکسی را به درستی در VS Code تنظیم کنیم تا همه این مشکلات برای همیشه حل شوند.
چرا VS Code بدون پروکسی در برخی شبکهها کار نمیکند
Visual Studio Code فقط یک ویرایشگر متن نیست. در زیر کاپوت، به طور مداوم به سرورهای خارجی متصل میشود: بهروزرسانیهای افزونهها را از marketplace.visualstudio.com دانلود میکند، تنظیمات را از طریق vscode.dev و سرورهای حساب GitHub/Microsoft همگامسازی میکند، بهروزرسانیهای خود ویرایشگر را بررسی میکند و تلمتری (اگر غیرفعال نشده باشد) ارسال میکند.
همه این درخواستها از طریق اتصالات استاندارد HTTPS انجام میشود. و اینجا جایی است که مشکلات شروع میشود:
- شبکههای شرکتی — مدیران سیستم دسترسی مستقیم به اینترنت را مسدود میکنند و از کاربران میخواهند که تمام ترافیک را از طریق سرور پروکسی شرکتی عبور دهند. VS Code از این موضوع «نمیداند» و به سادگی نمیتواند متصل شود.
- فایروالهای اداری با لیست سفید — فقط دامنههای خاصی مجاز هستند و
marketplace.visualstudio.comدر این لیست نیست. - محدودیتهای منطقهای — در برخی کشورها و مناطق، دسترسی به خدمات مایکروسافت محدود یا ناپایدار است. پروکسی با IP کشور مورد نظر این مشکل را حل میکند.
- تعارضات VPN — برخی از VPNهای شرکتی ترافیک را رهگیری میکنند، اما به درستی منتقل نمیکنند و در نتیجه VS Code اتصال خود را به بازار از دست میدهد.
- اینترنت ناپایدار + پروکسی با کش — سرور پروکسی میتواند بستههای افزونهها را کش کند و نصب را در تیمهایی با کانالهای کند تسریع کند.
علائم همه این مشکلات مشابه است: افزونهها نصب نمیشوند یا در حال بارگذاری متوقف میشوند، همگامسازی تنظیمات خطای تأیید اعتبار میدهد یا «متصل نمیشود»، بهروزرسانیهای VS Code دانلود نمیشوند و در پنل خروجی خطاهای ECONNREFUSED یا ETIMEDOUT مشاهده میشود.
چگونه VS Code پروکسی را پردازش میکند: چه چیزی مهم است
VS Code بر پایه Electron ساخته شده است که از موتور Chromium برای درخواستهای شبکه استفاده میکند. این بدان معنی است که تنظیمات پروکسی مشابه تنظیمات مرورگر کار میکند — ویرایشگر از پروکسیهای HTTP، HTTPS و SOCKS5 پشتیبانی میکند.
مهم است که سلسلهمراتب را درک کنیم که VS Code چگونه تنظیمات پروکسی را جستجو میکند:
- تنظیمات پروکسی سیستم — اگر در Windows/macOS/Linux پروکسی سیستم تنظیم شده باشد، VS Code به طور خودکار آن را شناسایی میکند (پارامتر
http.systemProxy). - متغیرهای محیطی —
HTTP_PROXY,HTTPS_PROXY,NO_PROXY— روش استاندارد برای Linux/macOS. - تنظیمات در settings.json — تعیین صریح پروکسی از طریق پارامترهای
http.proxyو گزینههای مرتبط. - آرگومانهای خط فرمان — میتوان VS Code را با پرچمهای پروکسی به طور مستقیم راهاندازی کرد.
اولویت: تنظیمات صریح در settings.json بر متغیرهای محیطی غلبه میکند، که به نوبه خود بر تنظیمات سیستم غلبه میکند. اگر چیزی کار نمیکند — این ترتیب را بررسی کنید.
💡 نکته مهم
VS Code از دو استک شبکه جداگانه استفاده میکند: یکی برای خود ویرایشگر (Electron/Chromium) و دیگری — برای افزونهها که میتوانند درخواستهای HTTP خود را از طریق Node.js انجام دهند. تنظیم پروکسی در settings.json هر دو استک را پوشش میدهد، اما برخی از افزونهها تنظیمات سیستم را نادیده میگیرند و به پیکربندی جداگانه نیاز دارند.
تنظیم پروکسی از طریق settings.json: گام به گام
این مطمئنترین و توصیهشدهترین روش است. تنظیمات در settings.json به طور جهانی برای همه درخواستهای شبکه VS Code اعمال میشود.
گام 1: باز کردن settings.json
کلیدهای Ctrl+Shift+P (یا Cmd+Shift+P در Mac) را فشار دهید، عبارت «Open User Settings (JSON)» را وارد کنید و این گزینه را انتخاب کنید. فایل تنظیمات کاربر باز میشود.
گام 2: افزودن پارامترهای پروکسی
خطوط مورد نیاز را درون شی JSON وارد کنید. مثالها برای انواع مختلف پروکسی:
پروکسی HTTP/HTTPS (بدون تأیید اعتبار):
{
"http.proxy": "http://192.168.1.100:3128",
"http.proxyStrictSSL": false
}
پروکسی HTTP/HTTPS با نام کاربری و رمز عبور:
{
"http.proxy": "http://username:password@proxy-host:3128",
"http.proxyStrictSSL": false
}
پروکسی SOCKS5:
{
"http.proxy": "socks5://username:password@proxy-host:1080",
"http.proxyStrictSSL": false
}
گام 3: با پارامترها آشنا شوید
| پارامتر | مقدار | کی استفاده شود |
|---|---|---|
http.proxy |
URL پروکسی | پارامتر اصلی، الزامی است |
http.proxyStrictSSL |
true / false | false — اگر پروکسی از گواهی خود امضا شده استفاده کند |
http.proxyAuthorization |
رشته Base64 | روش جایگزین برای ارسال نام کاربری/رمز عبور |
http.noProxy |
لیست دامنهها | دامنههایی که باید از پروکسی عبور کنند (localhost، میزبانهای داخلی) |
http.systemProxy |
on / off / override | مدیریت پروکسی سیستم (پارامتر جدید در VS Code 1.87+) |
گام 4: VS Code را دوباره راهاندازی کنید
پس از ذخیره settings.json، VS Code را به طور کامل ببندید و دوباره باز کنید. راهاندازی جزئی (Reload Window) گاهی اوقات تنظیمات شبکه جدید را اعمال نمیکند.
پروکسی از طریق متغیرهای محیطی (HTTP_PROXY / HTTPS_PROXY)
این روش به ویژه در Linux و macOS راحت است و همچنین در تیمهایی که پروکسی در سطح سیستم تنظیم میشود و باید برای همه ابزارهای توسعه — نه تنها برای VS Code، بلکه برای npm، pip، git و غیره اعمال شود.
Linux / macOS — تنظیم دائمی
به ~/.bashrc، ~/.zshrc یا ~/.profile اضافه کنید:
export HTTP_PROXY="http://username:password@proxy-host:3128" export HTTPS_PROXY="http://username:password@proxy-host:3128" export NO_PROXY="localhost,127.0.0.1,*.local,*.internal"
پس از آن، source ~/.bashrc را اجرا کنید (یا به جلسه وارد شوید) و VS Code را از ترمینال با دستور code . راهاندازی کنید — متغیرها به ارث برده میشوند.
Windows — از طریق متغیرهای سیستم
«تنظیمات سیستم» → «تنظیمات پیشرفته سیستم» → «متغیرهای محیطی» را باز کنید. متغیرهای HTTP_PROXY و HTTPS_PROXY را به بخش «متغیرهای کاربر» (یا «متغیرهای سیستم» برای اعمال به همه کاربران) اضافه کنید. پس از ذخیره، VS Code را دوباره راهاندازی کنید.
راهاندازی VS Code با پروکسی به طور مستقیم از خط فرمان
اگر نیاز به بررسی سریع بدون تنظیم دائمی دارید:
# Linux/macOS HTTP_PROXY=http://proxy-host:3128 HTTPS_PROXY=http://proxy-host:3128 code . # Windows PowerShell $env:HTTP_PROXY="http://proxy-host:3128"; $env:HTTPS_PROXY="http://proxy-host:3128"; code .
همگامسازی تنظیمات از طریق پروکسی: تشخیص و حل مشکلات
همگامسازی تنظیمات — ویژگی داخلی VS Code است که تنظیمات، افزونهها، اسنیپتها، کلیدهای میانبر و پروفایلها را بین دستگاهها از طریق حساب مایکروسافت یا GitHub همگامسازی میکند. این ویژگی از طریق درخواستهای HTTPS به سرورهای مایکروسافت و GitHub کار میکند و در اینجا پروکسی به شدت مهم است.
خطاهای متداول همگامسازی تنظیمات از طریق پروکسی
| خطا | دلیل | راه حل |
|---|---|---|
| «نمیتوان به سرور متصل شد» | پروکسی تنظیم نشده یا مسدود شده است | تنظیم http.proxy در settings.json |
| «تأیید اعتبار ناموفق بود» | پروکسی توکن OAuth را رهگیری میکند | غیرفعال کردن بازرسی SSL برای *.microsoft.com |
| «همگامسازی روشن است اما همگامسازی نمیشود» | پروکسی شرکتی WebSocket را مسدود میکند | استفاده از پروکسی با پشتیبانی WebSocket |
| همگامسازی در «همگامسازی...» متوقف میشود | زمانبر بودن اتصال از طریق پروکسی کند | تغییر پروکسی به یک پروکسی سریعتر |
تشخیص از طریق خروجی
View → Output را باز کنید و از منوی کشویی «Settings Sync» را انتخاب کنید. در اینجا همه تلاشهای اتصال و کدهای خطا قابل مشاهده است. به دنبال خطوطی با ECONNREFUSED، 407 Proxy Authentication Required یا CERT_UNTRUSTED باشید — هر یک از این کدها نشاندهنده یک مشکل خاص با پروکسی است.
اگر خطای 407 را مشاهده کردید — پروکسی نیاز به تأیید اعتبار دارد، نام کاربری و رمز عبور را به URL پروکسی اضافه کنید. اگر CERT_UNTRUSTED — "http.proxyStrictSSL": false را تنظیم کنید یا گواهی ریشه CA شرکتی را اضافه کنید.
دامنههایی که باید برای همگامسازی تنظیمات در دسترس باشند
اطمینان حاصل کنید که از طریق پروکسی شما دامنههای زیر در دسترس هستند:
login.microsoftonline.com— تأیید اعتبار از طریق حساب مایکروسافتgithub.com— تأیید اعتبار از طریق GitHubapi.github.com— API GitHub برای همگامسازی از طریق Gistvscode.dev— سرویس همگامسازی VS Code*.vscode-cdn.net— CDN برای منابع VS Code
بازار افزونهها: چرا افزونهها نصب نمیشوند و چگونه اصلاح کنیم
بازار VS Code از طریق دامنه marketplace.visualstudio.com و سرورهای CDN مایکروسافت کار میکند. اگر پروکسی به درستی تنظیم شده باشد، نصب افزونهها به طور شفاف کار میکند. اما چند مشکل خاص وجود دارد.
افزونه نصب میشود، اما کار نمیکند
بسیاری از افزونهها هنگام راهاندازی درخواستهای شبکه خود را انجام میدهند — به عنوان مثال، سرورهای زبانی (LSP)، وابستگیهای باینری یا بهروزرسانیهای پایگاه داده را دانلود میکنند. این درخواستها از طریق Node.js درون افزونه انجام میشود و آنها به تنظیمات پروکسی VS Code وابسته هستند، اما فقط اگر افزونه با در نظر گرفتن متغیرهای HTTP_PROXY نوشته شده باشد.
اگر افزونه هنوز هم در پشت پروکسی کار نمیکند — مستندات آن را بررسی کنید. بسیاری از افزونههای محبوب تنظیمات پروکسی خود را دارند. به عنوان مثال:
- Python (Pylance/Pylint) — از متغیرهای محیطی سیستم استفاده میکند
- ESLint، Prettier — به صورت محلی کار میکنند، پروکسی نیاز نیست
- GitHub Copilot — نیاز به دسترسی به
api.github.comدارد، پروکسی را از settings.json میگیرد - Remote - SSH — پروکسی برای تونل SSH نیاز است، به طور جداگانه در پیکربندی SSH تنظیم میشود
- Docker — از پروکسی سیستم Docker daemon استفاده میکند
نصب افزونهها به صورت دستی (آفلاین)
اگر پروکسی در دسترس نیست یا ناپایدار است، میتوان افزونهها را به صورت دستی از طریق .vsix-فایل نصب کرد. فایل افزونه را از marketplace.visualstudio.com بر روی دستگاهی با دسترسی به اینترنت دانلود کنید، سپس در VS Code: Extensions → ··· → Install from VSIX.
کدام نوع پروکسی را برای VS Code انتخاب کنیم
انتخاب نوع پروکسی بستگی به وظیفه دارد. بیایید گزینههای اصلی را در ارتباط با توسعه بررسی کنیم.
| نوع پروکسی | سرعت | اعتمادپذیری | کی برای VS Code مناسب است |
|---|---|---|---|
| پروکسی دیتاسنتر | ⚡ بالا | ✅ پایدار | عبور از محدودیتهای شرکتی، دانلود افزونهها، پایپلاینهای CI/CD |
| پروکسیهای مسکونی | 🔄 متوسط | ✅ اعتماد بالا | دسترسی به منابع جغرافیایی محافظتشده، تست از منطقه خاص |
| پروکسیهای موبایل | 🔄 متوسط | ✅ حداکثر اعتماد | به ندرت برای VS Code نیاز است، اما در توسعه برنامههای موبایل با تست جغرافیایی مفید است |
| پروکسی شرکتی (Squid، ISA) | ⚡ بالا | ⚠️ بستگی به تنظیمات دارد | محیط اداری، الزامی به سیاست شرکت |
برای اکثر توسعهدهندگانی که فقط نیاز به عبور از محدودیتهای شرکتی یا کار از کشوری با دسترسی ناپایدار به سرورهای مایکروسافت دارند، انتخاب بهینه پروکسی دیتاسنتر است — آنها سریع، پایدار و برای وظایف فنی مانند دانلود بستهها و همگامسازی تنظیمات بسیار مناسب هستند.
اما اگر وظیفه — تست برنامه از یک منطقه جغرافیایی خاص باشد (به عنوان مثال، بررسی اینکه سرویس شما برای کاربران در آلمان یا ایالات متحده چگونه کار میکند)، در این صورت پروکسیهای مسکونی با IP واقعی کاربران خانگی در کشور مورد نظر مفید خواهند بود.
پروکسی شرکتی با بازرسی SSL: مورد خاص
پروکسیهای شرکتی با قابلیت بازرسی SSL (man-in-the-middle) یک دردسر جداگانه برای توسعهدهندگان هستند. این پروکسی ترافیک HTTPS را رمزگشایی میکند، آن را بررسی میکند و دوباره رمزگذاری میکند و با گواهی شرکتی خود امضا میکند. در نتیجه VS Code گواهی «ناشناس» را میبیند و از کار کردن امتناع میکند.
علائم
- خطای
CERT_UNTRUSTEDیاunable to verify the first certificateدر خروجی - افزونهها نصب نمیشوند، اگرچه پروکسی به درستی مشخص شده است
- همگامسازی تنظیمات تأیید نمیشود
- npm و pip نیز در مورد گواهیها مشکل دارند
راه حل 1: غیرفعال کردن تأیید SSL (سریع، اما کمتر ایمن)
{
"http.proxyStrictSSL": false
}
این یک راه حل سریع است که تأیید گواهی SSL پروکسی را غیرفعال میکند. برای شبکه داخلی شرکتی که پروکسی مورد اعتماد است مناسب است.
راه حل 2: افزودن گواهی CA شرکتی (راه درست)
گواهی ریشه شرکتی (فایل .pem یا .crt) را از مدیر سیستم دریافت کنید و آن را به تنظیمات اضافه کنید:
{
"http.proxy": "http://corporate-proxy:3128",
"http.proxyStrictSSL": true,
"http.proxyCertificates": true
}
همچنین گواهی را به مخزن سیستمعامل اضافه کنید — VS Code از گواهیهای سیستم استفاده میکند از نسخه 1.40 به بعد. در ویندوز کافی است گواهی را در «مراکز گواهینامههای ریشه معتبر» از طریق certmgr.msc نصب کنید. در لینوکس گواهی را به /usr/local/share/ca-certificates/ اضافه کنید و update-ca-certificates را اجرا کنید.
راه حل 3: متغیر NODE_EXTRA_CA_CERTS
VS Code و افزونههای آن بر روی Node.js کار میکنند، بنابراین میتوان گواهیهای CA اضافی را از طریق متغیر محیطی مشخص کرد:
# Linux/macOS export NODE_EXTRA_CA_CERTS="/path/to/corporate-ca.pem" # Windows PowerShell $env:NODE_EXTRA_CA_CERTS="C:\certs\corporate-ca.pem"
چکلیست: VS Code + پروکسی به درستی کار میکند
از این چکلیست استفاده کنید تا مطمئن شوید که همه چیز به درستی تنظیم شده است یا به سرعت دلیل مشکل را پیدا کنید.
✅ تنظیمات پایه پروکسی
- در
settings.jsonپارامترhttp.proxyبا URL صحیح مشخص شده است - URL پروکسی شامل طرح است:
http://یاsocks5:// - اگر پروکسی نیاز به تأیید اعتبار دارد — نام کاربری و رمز عبور در URL مشخص شدهاند
- VS Code پس از تغییر تنظیمات به طور کامل دوباره راهاندازی شده است
✅ SSL و گواهیها
- اگر پروکسی با بازرسی SSL است — گواهی CA شرکتی نصب شده است
- یا
"http.proxyStrictSSL": falseبه عنوان یک راه حل موقت تنظیم شده است - در خروجی هیچ خطای
CERT_UNTRUSTEDوجود ندارد
✅ همگامسازی تنظیمات
- دامنههای
login.microsoftonline.comوvscode.devاز طریق پروکسی در دسترس هستند - تأیید اعتبار از طریق حساب مایکروسافت یا GitHub به درستی انجام میشود
- در خروجی → همگامسازی تنظیمات هیچ خطای اتصالی وجود ندارد
- وضعیت همگامسازی در نوار وضعیت نماد فعال را نشان میدهد
✅ بازار و افزونهها
- جستجوی افزونهها در بازار کار میکند و نتایج را نمایش میدهد
- نصب افزونه بدون خطا به پایان میرسد
- افزونههایی که نیاز به دسترسی شبکه دارند (Copilot، Remote) به درستی کار میکنند
- بهروزرسانیهای افزونهها به طور خودکار دانلود میشوند
✅ ابزارهای اضافی توسعهدهنده
- npm برای کار از طریق پروکسی تنظیم شده است:
npm config set proxy http://proxy:3128 - git تنظیم شده است:
git config --global http.proxy http://proxy:3128 - pip (اگر از Python استفاده میشود): متغیرهای
HTTP_PROXYتنظیم شدهاند
نتیجهگیری
تنظیم پروکسی در VS Code یک وظیفه است که یک بار انجام میشود و برای همیشه از مشکلاتی مانند بازار متوقف شده، همگامسازی تنظیمات غیرعملی و افزونههایی که نمیتوانند وابستگیها را دانلود کنند، رهایی مییابد. نکات کلیدی این مقاله:
- مطمئنترین روش — تعیین
http.proxyدرsettings.json: برای خود ویرایشگر و اکثر افزونهها کار میکند. - متغیرهای محیطی (
HTTP_PROXY,HTTPS_PROXY) — برای یکسانسازی تنظیمات پروکسی برای کل محیط توسعهدهنده راحت هستند. - پروکسی شرکتی با بازرسی SSL نیاز به غیرفعال کردن
proxyStrictSSLیا نصب گواهی CA شرکتی دارد. - همگامسازی تنظیمات از طریق پروکسی بدون تنظیمات اضافی کار میکند — مهم این است که دامنههای مایکروسافت و GitHub در دسترس باشند.
- تشخیص همیشه با خروجی → همگامسازی تنظیمات و خروجی → افزونهها آغاز میشود — در آنجا همه خطاهای شبکه با کدها قابل مشاهده است.
اگر در محیطی با دسترسی محدود به اینترنت کار میکنید یا نیاز به تست برنامه از یک منطقه جغرافیایی خاص دارید، توصیه میکنیم از پروکسی دیتاسنتر برای کار پایدار و سریع با ابزارهای توسعه استفاده کنید — آنها سرعت اتصال بالایی را فراهم میکنند و برای وظایف فنی مانند دانلود بستهها، همگامسازی تنظیمات و کار با مخازن از راه دور بسیار مناسب هستند.
```