مطوّر ينقل مصادقة Claude Code إلى خادم VDS مع إبقاء المشاريع على جهاز Mac
بعد حظر اشتراك Claude Max، نقل الكاتب المصادقة إلى خادم VDS وأبقى المشاريع على جهاز Mac. يتصل Claude Code المحلي ببوابة API المسماة CLIProxyAPI على الخادم عبر نفق SSH، بينما تمر بقية حركة البيانات عبر Tinyproxy. لا تجري مزامنة الملفات؛ إذ لا تُرسل إلى النموذج سوى المقاطع التي يختارها الوكيل. لكن المنظومة هشة ومثيرة للجدل من زاوية قواعد Anthropic.
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
في أكتوبر، بدأت حسابات كثير من مستخدمي Claude في روسيا والدول المجاورة تتساقط مجددا. وفقد كاتب التحليل المنشور على Habr اشتراك Max قبل يوم واحد من تحصيل الرسوم، بينما لم يكن الدعم، كما افترض محقا، ليحل شيئا. اشترى اشتراكا جديدا وأنشأ إعدادا تبقى فيه المشاريع على جهاز Mac الخاص به، فيما توجد مصادقة Anthropic ونقطة الخروج إلى الشبكة على خادم Linux. هذه تجربة شخصية، ويؤكد الكاتب نفسه أنه لا يمكن اعتبارها دليلا عاما يصلح للجميع.
لماذا لم يكن Remote SSH والخادم الوكيل البسيط كافيين
كانت الفكرة الأولى هي الأكثر وضوحا: تثبيت Claude Code على خادم VDS والاتصال به عبر VS Code Remote SSH. ينجح ذلك، لكن المشاريع الموجودة على جهاز Mac لا تظهر تلقائيا على الخادم. يمكن استنساخ المستودعات وإعداد المزامنة، إلا أن الكاتب لم يرغب في الاحتفاظ ببعض الملفات على جهاز لا يملكه. وهكذا أصبح المطلوب كالتالي: يقرأ Claude Code الملفات ويعدلها على جهاز Mac، وتخرج طلبات النموذج عبر Linux، بينما تبقى المصادقة على Linux.
أما الفكرة الثانية، وهي تشغيل خادم وكيل HTTP على الخادم، فلم تنجح هي الأخرى. فالخادم الوكيل يغيّر مسار حركة البيانات، لكنه لا ينقل إلى العميل على جهاز Mac بيانات مصادقة موجودة على جهاز آخر. لذلك لزم استخدام مكوّنين مختلفين. تعمل CLIProxyAPI بوصفها بوابة تستقبل طلب Claude Code المحلي وتتصل بـ Anthropic باستخدام بيانات الاعتماد الموجودة على الخادم. أما Tinyproxy فيعيد توجيه بقية حركة بيانات العميل، بما فيها البحث على الويب وMCP والطلبات الأخرى التي كانت ستخرج لولا ذلك من عنوان الشبكة المنزلية.
كيف تعمل المنظومة
على جهاز Mac، يحدد ملف settings.json قيمة ANTHROPIC_BASE_URL إلى منفذ محلي، ويضبط HTTP_PROXY وHTTPS_PROXY على منفذ ثان، فيما توفر apiKeyHelper مفتاح البوابة. يُمرر المنفذان عبر نفق SSH واحد إلى الخادم، حيث لا تستمع البوابة والخادم الوكيل إلا على 127.0.0.1. ويتولى LaunchAgent إنشاء النفق وإعادة تشغيله. أما النموذج نفسه، بطبيعة الحال، فيحسب الإجابة داخل سحابة Anthropic. تبقى البوابة والرمز المميز ونقطة الخروج إلى الشبكة على الخادم، بينما تبقى الملفات والوكيل وتنفيذ الأدوات المحلية على جهاز Mac. ولا تُرسل إلى النموذج سوى مقاطع الملفات التي يختارها الوكيل ونتائج الأوامر المحلية.
أجرى الكاتب اختبارات كثيرة لأن المشكلات ظهرت في كل خطوة. تحقق من عنوان IP الخارجي عبر الخادم الوكيل، وفحص الملف التنفيذي لإضافة VS Code، وتأكد من تنفيذ عمليات الملفات على جهاز Mac. كما شغّل العميل بصورة منفصلة مع تعطيل البوابة والخادم الوكيل؛ فلم تصل أي إجابة عبر مسار بديل، بل ظهر خطأ اتصال فقط.
أين تعطّل كل شيء
كانت المشكلة الأولى في systemd. لم تتمكن عملية استيراد المصادقة داخل ExecStartPre من رؤية متغير البيئة المطلوب، ولذلك كانت الخدمة تتوقف قبل بدء تشغيل البوابة. نفّذ الكاتب الاستيراد بصورة منفصلة، ثم جعل الخدمة تقرأ ملف auth جاهزا. ويتعين تحديث الرمز المميز يدويا.
أما المشكلة الثانية فكانت NO_PROXY. من دون استثناء لاتصالات loopback، كان الطلب الموجّه إلى البوابة المحلية يذهب أولا إلى Tinyproxy، فلا يعمل أي شيء.
وكانت المشكلة الثالثة والأكثر فائدة تتعلق بدليل النماذج. طلب العميل النموذج المساعد claude-haiku-5-5، الذي لم يكن موجودا في دليل CLIProxyAPI 8.0.20، فتلقى الخطأ unknown provider for model. وكان الحل إضافة سجل خاص بالنموذج إلى الدليل. ويستنتج الكاتب ضرورة تثبيت إصدارات العميل والبوابة وإجراء التحديثات بصورة مدروسة.
وثمة قيد آخر: بعد خروج الجهاز من وضع السكون أو انقطاع الشبكة، يعيد النفق الاتصال، لكن طلب النموذج الذي انقطع بالفعل لا يُستأنف.
ما الذي يمكن استخلاصه وما الذي يجب تذكره
هذا النمط مفيد حتى خارج سياق عمليات الحظر. فإذا كان المطلوب إبقاء بيانات الاعتماد ونقطة الخروج إلى الشبكة على جهاز، والملفات والأدوات على جهاز آخر، فإن بنية «وكيل محلي، وبوابة خلف نفق SSH، وخادم وكيل منفصل» تعمل. كما توضح أن بوابة API والخادم الوكيل للشبكة يحلان مهمتين مختلفتين ولا يحل أحدهما محل الآخر.
لكن هذا النهج ينطوي على تحفظات جدية. فالكاتب نفسه يقر بأن وجود خادم VDS لا يلغي متطلبات Anthropic المتعلقة بالموقع الفعلي للمستخدم، وأن تطابق بلدان البطاقة المصرفية وشريحة SIM والخادم لا يضمن شيئا. كما أنه يتشارك الاشتراك مع صديق، وهذه منطقة مخاطر منفصلة: خدمات ومنافذ مشتركة على خادم VDS واحد، وعدة مستخدمين يتمتعون بصلاحيات root. ويُخزن setup-token على الخادم، ما يجعل الخادم نقطة حرجة. وقد يتعارض تجاوز القيود الإقليمية ومشاركة الاشتراك مع شروط الخدمة، ولذلك يمكن فقدان الحساب مجددا. من الأفضل للفرق استخدام هذه البنية عندما يكون لديها وصول مشروع وتحتاج إلى نقطة خروج مركزية، لا باعتبارها وسيلة للتحايل على قواعد مزود الخدمة.
تنقطع نهاية المقال المنشور على Habr أثناء تحليل تفاصيل العمل المشترك، ولذلك لا نرى الصورة الكاملة لآلية الوصول المشترك.
- 8 نوفمبر 2026التحقق من الحقائق أنقذ شركة من خسارة تصل إلى 100 ألف دولار من ميزانية الإعلانات
- 8 نوفمبر 2026أصبح OpenIDE قادرا على استدعاء Codex للمراجعة مباشرة من محادثة مع Claude وانتظار إعادة ضبط الحدود
- 8 نوفمبر 2026Perplexity تطلق Teammates: وكلاء ذكاء اصطناعي يعملون على مدار الساعة مقابل 200 دولار
- 8 نوفمبر 2026كيف تُثري وكلاء QA قاعدة المعرفة بأنفسهم وتختصر البحث عن سبب الخلل من ساعتين إلى 10 دقائق
أسئلة وأجوبة حول الخبر
ما أبرز التفاصيل حول لماذا لم يكن Remote SSH والخادم الوكيل البسيط كافيين؟
كانت الفكرة الأولى هي الأكثر وضوحا: تثبيت Claude Code على خادم VDS والاتصال به عبر VS Code Remote SSH. ينجح ذلك، لكن المشاريع الموجودة على جهاز Mac لا تظهر تلقائيا على الخادم. يمكن استنساخ المستودعات وإعداد المزامنة، إلا أن الكاتب لم يرغب في الاحتفاظ ببعض الملفات على جهاز لا يملكه. وهكذا أصبح المطلوب كالتالي: يقرأ Claude Code الملفات ويعدلها على جهاز Mac، وتخرج طلبات النموذج عبر Linux، بينما تبقى المصادقة على Linux. أما الفكرة الثانية، وهي تشغيل خادم وكيل HTTP على الخادم، فلم تنجح هي الأخرى.
ما أبرز التفاصيل حول كيف تعمل المنظومة؟
على جهاز Mac، يحدد ملف settings.json قيمة ANTHROPIC_BASE_URL إلى منفذ محلي، ويضبط HTTP_PROXY وHTTPS_PROXY على منفذ ثان، فيما توفر apiKeyHelper مفتاح البوابة. يُمرر المنفذان عبر نفق SSH واحد إلى الخادم، حيث لا تستمع البوابة والخادم الوكيل إلا على 127.0.0.1. ويتولى LaunchAgent إنشاء النفق وإعادة تشغيله. أما النموذج نفسه، بطبيعة الحال، فيحسب الإجابة داخل سحابة Anthropic. تبقى البوابة والرمز المميز ونقطة الخروج إلى الشبكة على الخادم، بينما تبقى الملفات والوكيل وتنفيذ الأدوات المحلية على جهاز Mac.
ما أبرز التفاصيل حول أين تعطّل كل شيء؟
كانت المشكلة الأولى في systemd. لم تتمكن عملية استيراد المصادقة داخل ExecStartPre من رؤية متغير البيئة المطلوب، ولذلك كانت الخدمة تتوقف قبل بدء تشغيل البوابة. نفّذ الكاتب الاستيراد بصورة منفصلة، ثم جعل الخدمة تقرأ ملف auth جاهزا. ويتعين تحديث الرمز المميز يدويا. أما المشكلة الثانية فكانت NO_PROXY. من دون استثناء لاتصالات loopback، كان الطلب الموجّه إلى البوابة المحلية يذهب أولا إلى Tinyproxy، فلا يعمل أي شيء. وكانت المشكلة الثالثة والأكثر فائدة تتعلق بدليل النماذج.
Build & Ship Production AI Agents Without Boilerplate Code
Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.