العودة إلى المدونة

بروكسي لـ VS Code: إعداد مزامنة الإضافات وSettings Sync عبر بروكسي مؤسسي أو سكني

نشرح كيفية إعداد البروكسي في Visual Studio Code بحيث تعمل مزامنة الملحقات ومزامنة الإعدادات بدون أخطاء - حتى خلف جدار ناري مؤسسي أو من مناطق محظورة.

📅٧ صفر ١٤٤٨ هـ
```html

يتمتع Visual Studio Code بقدرة على مزامنة الإضافات والإعدادات والقصاصات بين الأجهزة - لكن كل ذلك يعمل عبر خوادم Microsoft، التي غالبًا ما تكون غير متاحة خلف جدار ناري مؤسسي، في الشبكات المكتبية ذات التصفية الصارمة، أو من مناطق ذات وصول محدود. النتيجة - يتعطل سوق الإضافات، ولا تتصل إعدادات المزامنة، ولا يتم تنزيل التحديثات. في هذه المقالة، سنستعرض كيفية إعداد البروكسي بشكل صحيح في VS Code، بحيث تختفي كل هذه المشاكل مرة واحدة وإلى الأبد.

لماذا لا يعمل VS Code بدون بروكسي في بعض الشبكات

Visual Studio Code ليس مجرد محرر نصوص. تحت الغطاء، يتصل باستمرار بالخوادم الخارجية: يقوم بتنزيل تحديثات الإضافات من marketplace.visualstudio.com، ويقوم بمزامنة الإعدادات عبر vscode.dev وخوادم حساب GitHub/Microsoft، ويتحقق من تحديثات المحرر نفسه، ويرسل بيانات القياس (إذا لم يتم تعطيلها).

جميع هذه الطلبات تتم عبر اتصالات HTTPS القياسية. وهنا تبدأ المشاكل:

  • الشبكات المؤسسية - يقوم مسؤولو النظام بحظر الوصول المباشر إلى الإنترنت، مما يتطلب تمرير كل حركة المرور عبر خادم بروكسي مؤسسي. VS Code "لا يعرف" عن ذلك ولا يمكنه الاتصال ببساطة.
  • جدران الحماية المكتبية مع قائمة بيضاء - يتم السماح فقط بمجالات معينة، و marketplace.visualstudio.com ليس ضمن هذه القائمة.
  • القيود الإقليمية - في عدد من البلدان والمناطق، يكون الوصول إلى خدمات Microsoft محدودًا أو غير مستقر. يحل البروكسي مع IP للدولة المطلوبة المشكلة.
  • صراعات VPN - بعض VPN المؤسسية تعترض حركة المرور، لكنها لا تنقلها بشكل صحيح، مما يؤدي إلى فقدان VS Code الاتصال بالسوق.
  • إنترنت غير مستقر + بروكسي مع تخزين مؤقت - يمكن أن يقوم خادم البروكسي بتخزين حزم الإضافات مؤقتًا وتسريع التثبيت في الفرق ذات القناة البطيئة.

أعراض كل هذه المشاكل متشابهة: لا يتم تثبيت الإضافات أو تتعطل أثناء التحميل، وتظهر إعدادات المزامنة خطأ في المصادقة أو "لا يمكن الاتصال"، ولا يتم تنزيل تحديثات VS Code، وتظهر في لوحة الإخراج أخطاء ECONNREFUSED أو ETIMEDOUT.

كيف يتعامل VS Code مع البروكسي: ما يجب معرفته

تم بناء VS Code على Electron، الذي يستخدم محرك Chromium للطلبات الشبكية. هذا يعني أن إعدادات البروكسي تعمل بشكل مشابه لإعدادات المتصفح - يدعم المحرر بروكسي HTTP وHTTPS وSOCKS5.

من المهم فهم التسلسل الهرمي الذي يبحث فيه VS Code عن إعدادات البروكسي:

  1. إعدادات البروكسي النظامية - إذا تم إعداد بروكسي النظام في Windows/macOS/Linux، سيقوم VS Code بالتقاطه تلقائيًا (المعلمة http.systemProxy).
  2. متغيرات البيئة - HTTP_PROXY، HTTPS_PROXY، NO_PROXY - الطريقة القياسية لـ Linux/macOS.
  3. الإعدادات في settings.json - تحديد البروكسي بشكل صريح عبر المعلمات http.proxy والخيارات ذات الصلة.
  4. معلمات سطر الأوامر - يمكن تشغيل 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، تقوم بمزامنة الإعدادات والإضافات والقصاصات والاختصارات والملفات الشخصية بين الأجهزة عبر حساب Microsoft أو GitHub. تعمل عبر طلبات HTTPS إلى خوادم Microsoft وGitHub، وهنا يكون البروكسي مهمًا بشكل حاسم.

الأخطاء الشائعة لإعدادات المزامنة عبر البروكسي

الخطأ السبب الحل
«لا يمكن الاتصال بالخادم» لم يتم إعداد البروكسي أو تم حظره قم بإعداد http.proxy في settings.json
«فشلت المصادقة» يقوم البروكسي باعتراض رمز OAuth قم بإيقاف فحص SSL لـ *.microsoft.com
«المزامنة مفعلة ولكنها لا تعمل» البروكسي المؤسسي يحظر WebSocket استخدم بروكسي يدعم WebSocket
تتوقف المزامنة عند «المزامنة...» انتهاء مهلة الاتصال عبر بروكسي بطيء قم بتغيير البروكسي إلى أسرع

التشخيص عبر الإخراج

افتح عرض → الإخراج واختر من القائمة المنسدلة «إعدادات المزامنة». هنا يمكنك رؤية جميع محاولات الاتصال وأكواد الأخطاء. ابحث عن السطور التي تحتوي على ECONNREFUSED، 407 Proxy Authentication Required أو CERT_UNTRUSTED - كل من هذه الأكواد تشير إلى مشكلة معينة مع البروكسي.

إذا رأيت الخطأ 407 - يتطلب البروكسي مصادقة، أضف اسم المستخدم وكلمة المرور إلى عنوان URL للبروكسي. إذا كان CERT_UNTRUSTED - قم بتعيين "http.proxyStrictSSL": false أو أضف شهادة الجذر من CA المؤسسي.

المجالات التي يجب أن تكون متاحة لإعدادات المزامنة

تأكد من أن البروكسي الخاص بك يمكنه الوصول إلى المضيفين التاليين:

  • login.microsoftonline.com - المصادقة عبر حساب Microsoft
  • github.com - المصادقة عبر GitHub
  • api.github.com - API GitHub للمزامنة عبر Gist
  • vscode.dev - خدمة مزامنة VS Code
  • *.vscode-cdn.net - CDN لموارد VS Code

سوق الإضافات: لماذا لا يتم تثبيت الإضافات وكيفية إصلاحها

يعمل سوق VS Code عبر المجال marketplace.visualstudio.com وخوادم CDN من Microsoft. إذا تم إعداد البروكسي بشكل صحيح، فإن تثبيت الإضافات يعمل بسلاسة. لكن هناك بعض المشاكل المحددة.

تثبيت الإضافة، لكنها لا تعمل

تقوم العديد من الإضافات بعمل طلبات شبكية خاصة بها عند التشغيل - على سبيل المثال، تقوم بتنزيل خوادم اللغة (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

تثبيت الإضافات يدويًا (غير متصل بالإنترنت)

إذا كان البروكسي غير متاح أو غير مستقر، يمكن تثبيت الإضافات يدويًا عبر ملف .vsix. قم بتنزيل ملف الإضافة من marketplace.visualstudio.com على جهاز متصل بالإنترنت، ثم في VS Code: الإضافات → ··· → التثبيت من VSIX.

ما هو نوع البروكسي الذي يجب اختياره لـ VS Code

يعتمد اختيار نوع البروكسي على المهمة. دعونا نستعرض الخيارات الرئيسية المتعلقة بالتطوير.

نوع البروكسي السرعة الاعتمادية متى يناسب VS Code
بروكسي مراكز البيانات ⚡ عالية ✅ مستقرة تجاوز القيود المؤسسية، تنزيل الإضافات، خطوط CI/CD
بروكسي سكنية 🔄 متوسطة ✅ موثوقية عالية الوصول إلى الموارد المحمية جغرافيًا، الاختبار من منطقة معينة
بروكسي موبايل 🔄 متوسطة ✅ أقصى موثوقية نادراً ما تكون مطلوبة لـ VS Code، لكنها مفيدة عند تطوير التطبيقات المحمولة مع الاختبار الجغرافي
بروكسي مؤسسي (Squid، ISA) ⚡ عالية ⚠️ يعتمد على الإعدادات بيئة مكتبية، إلزامية وفقًا لسياسة الشركة

بالنسبة لمعظم المطورين الذين يحتاجون فقط لتجاوز القيود المؤسسية أو العمل من بلد ذو وصول غير مستقر إلى خوادم Microsoft، سيكون الخيار الأمثل هو بروكسي مراكز البيانات - فهي سريعة ومستقرة وتناسب المهام التقنية مثل تنزيل الحزم ومزامنة الإعدادات.

إذا كانت المهمة هي اختبار التطبيق من منطقة جغرافية معينة (على سبيل المثال، للتحقق من كيفية عمل خدمتك للمستخدمين في ألمانيا أو الولايات المتحدة)، فإن البروكسي السكني مع 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. على Windows، يكفي تثبيت الشهادة في "مراكز الشهادات الجذرية الموثوقة" عبر certmgr.msc. على Linux، أضف الشهادة إلى /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 متاحة عبر البروكسي
  • تتم المصادقة عبر حساب Microsoft أو 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 المؤسسية.
  • إعدادات المزامنة تعمل عبر البروكسي بدون إعدادات إضافية - المهم هو أن تكون المجالات الخاصة بـ Microsoft وGitHub متاحة.
  • التشخيص يبدأ دائمًا من الإخراج → إعدادات المزامنة والإخراج → الإضافات - حيث تظهر جميع الأخطاء الشبكية مع الأكواد.

إذا كنت تعمل في بيئة ذات وصول محدود إلى الإنترنت أو تحتاج إلى اختبار تطبيق من منطقة جغرافية معينة، نوصي باستخدام بروكسي مراكز البيانات للعمل بشكل مستقر وسريع مع أدوات التطوير - حيث توفر سرعة اتصال عالية وتناسب تمامًا المهام التقنية مثل تنزيل الحزم، ومزامنة الإعدادات، والعمل مع المستودعات البعيدة.

```