استخدام Pinggy في ServBay للوصول إلى مواقعك وخدماتك المحلية عبر الإنترنت
يُعد Pinggy أداة اختراق جدار الحماية سهلة الاستخدام تسمح لك بجعل خدمات الويب المحلية (مثل تلك المُدارة عبر ServBay) مُتاحة على الإنترنت بأمان من خلال تقنية البروكسي العكسي. يوضح هذا الدليل بخطوات عملية كيف يمكنك استخدام Pinggy مع ServBay لتسهيل إتاحة خدماتك المحلية للعالم بهدف العروض التوضيحية، التعاون الجماعي، أو استقبال طلبات Webhook.
المبادئ التقنية
يعتمد Pinggy أساسًا على إنشاء نفق SSH آمن. حيث يُعاد توجيه المنافذ الخاصة بالخدمة المحلية (التي قد تكون خلف NAT أو جدار ناري) عبر اتصال SSH إلى خادم Pinggy العام. عند استخدام المستخدمين للعنوان الذي يزوّده Pinggy، تمر جميع الطلبات عبر هذا النفق ليصل بأمان إلى الخدمة المحلية لديك.
في سيناريوهات استخدام ServBay، يمكنك جعل أي موقع محلي يعمل في ServBay (مثلاً: https://myproject.servbay.demo
) متاحًا عبر الإنترنت من خلال عنوان Pinggy دون الحاجة لأي تعقيدات في تعيين المنافذ أو ضبط الجدران النارية.
التجهيزات المطلوبة
لست بحاجة لتثبيت أي برامج إضافية لاستخدام Pinggy على جهازك المحلي. فقط تأكد من توفر التالي:
- وجود ServBay مثبت وجاهز للعمل: تأكد أن بيئة ServBay لديك مُثبتة وتعمل بشكل سليم، والموقع أو الخدمة التي ترغب في إتاحتها على الإنترنت تعمل فعلياً.
- موقع ServBay فعّال: يجب أن يكون هناك موقع أو أكثر تم إعداده وتشغيله ضمن ServBay. غالباً ما تعمل هذه المواقع على المنافذ 80 (HTTP) أو 443 (HTTPS) بواسطة خادم Caddy أو Nginx المُدمج في ServBay.
- طرفية تدعم SSH: جميع الطرفيات على macOS أو أي محاكي طرفية آخر يدعم SSH.
- معرفة أساسيات SSH: الإلمام بتنفيذ أوامر SSH من الطرفية.
كيفية إعداد النفق فعليًا
الأمر الأساسي
استخدام Pinggy سهل للغاية؛ فقط نفِّذ أمر SSH واحد من خلال الطرفية. المثال التالي يوضح كيف يمكنك جعل موقع servbay.new
الذي يُدار عبر ServBay على المنفذ 443 متاحًا على الإنترنت:
bash
ssh -p 443 -R0:localhost:443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected] x:localServerTls:servbay.new "u:host:servbay.new"
1
تنبيه هام: عليك استبدال XXXXXXXXXXX
باسم المستخدم الخاص بك المُستخرج من موقع Pinggy (عادةً ما يكون مجموعة رموز). كذلك، استبدل servbay.new
باسم النطاق الفعلي لموقعك في ServBay (مثال: myproject.servbay.demo
).
شرح مفصل لمكونات الأمر:
المكون | الشرح |
---|---|
-p 443 | تحديد استخدام المنفذ 443 (منفذ HTTPS الافتراضي) لاتصال SSH لزيادة نجاح تجاوز الجدار الناري. |
-R0:localhost:443 | جوهر إعادة التوجيه عن بعد: 0 لتخصيص منفذ عشوائي عام؛ و localhost:443 لتوجيه حركة المرور القادمة إلى هذا المنفذ العام نحو المنفذ 443 على الجهاز المحلي. غالبًا ما يعالج Caddy أو Nginx هذا المنفذ لطلبات HTTPS في ServBay. |
-o StrictHostKeyChecking=no | تعطيل التحقق من مفتاح المضيف؛ مناسب للاختبار الأولي، لكن يُفضل السماح بالتحقق في الإنتاج لاحقًا. |
-o ServerAliveInterval=30 | إرسال رسالة "صيانة الاتصال" كل 30 ثانية لمنع قطع الاتصال عند الخمول الطويل. |
-t [email protected] | اسم المستخدم في Pinggy مع عنوان الخادم الخاص به. |
x:localServerTls:servbay.new | خيار مخصص لـ Pinggy يخبره أن خدمتك المحلية تدعم TLS (HTTPS) وأن النطاق المحلي هو servbay.new . |
"u:host:servbay.new" | خيار آخر من Pinggy لضبط رأس HTTP Host المرسل ليطابق نطاق موقعك المحلي؛ ضروري إذا استخدمت عدة مواقع (virtual hosts) على ServBay، إذ يُحدد أي موقع يجب أن يستجيب للطلب القادم. |
بنجاح تنفيذ الأمر، سيظهر في الطرفية رابط عام (HTTP و HTTPS غالباً) للوصول إلى خدمتك، مثال:
http://rnirh-172-188-50-148.a.free.pinggy.link
https://rnirh-172-188-50-148.a.free.pinggy.link
1
2
2
التحقق من الخدمة
بعد إنشاء النفق، تحقق من نجاح الوصول كما يلي:
التحقق باستخدام
curl
(موصى به): نفّذ أمرcurl
مع خيار-I
لجلب ترويسة HTTP الخاصة بالرابط الخارجي (استبدل المثال بعنوانك الحقيقي):bashcurl -I https://rnirh-172-188-50-148.a.free.pinggy.link
1إذا سار كل شيء بشكل صحيح، سترى نتائج مشابهه للتالي، مع ترويسة يخص خادم الويب المحلي لديك (Nginx أو Caddy):
HTTP/1.1 200 OK Connection: close Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Content-Type, Authorization Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS Access-Control-Allow-Origin: * Cache-Control: max-age=0, must-revalidate, no-cache, no-store, private Connection: keep-alive Content-Type: text/html; charset=UTF-8 Date: Tue, 18 Feb 2025 11:51:48 GMT # قد تكون مختلفة حسب الوقت Expires: Sun, 02 Jan 1990 00:00:00 GMT Pragma: no-cache Server: nginx # أو caddy حسب إعداد ServBay Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN X-Powered-By: PHP/8.4.3 # أو تقنيات أخرى
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16ظهور سطر
HTTP/1.1 200 OK
مع رأسServer
صحيح يعني نجاح الاتصال واستجابة خادم الويب المحلي لديك في ServBay.التحقُّق عبر متصفح: افتح رابط HTTPS الذي يوفره Pinggy من أي متصفح (ومن أي جهاز حتى لو لم يكن على نفس الشبكة المحلية) ويجب أن يظهر لك نفس الموقع المحلي الذي تراه عبر ServBay.
النتيجة المتوقعة:
- يمكن لأي مستخدم عبر الإنترنت تصفح الموقع أو الخدمة المحلية الخاصة بـ ServBay من خلال رابط Pinggy.
- إذا كان موقعك المحلي يفعل HTTPS (وينشئ شهادة موقعة ذاتيًا افتراضيًا)، سيُتيح Pinggy التصفح عبر HTTPS باستخدام شهادة CA عامة مجانية بدون أي إعداد إضافي.
- يختلف وقت الاستجابة والثبات باختلاف جودة الاتصال المحلي، وPinggy، وحمل الشبكة على الخوادم.
نصائح متقدمة
نشر خدمات محلية أو منافذ مختلفة: إذا كانت خدمتك ليست ويب أو تستخدم منفذ غير 80/443، فقط عدّل قيمة
-R
. مثلاً لنشر تطبيق على المنفذ 8000 (مثل تطبيق Python أو Node.js):bashssh -p 443 -R0:localhost:8000 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected]
1لهذه الحالات، قد لن تحتاج خيارات
x:localServerTls
وu:host
إذا كانت الخدمة غير ويب أو لا تتطلب رأس Host معين.نطاق مخصص (Pinggy Pro): لمستخدمي الباقة المدفوعة في Pinggy، يمكنهم إعداد نطاق باسم مخصص بدلاً من النطاق العشوائي لتجربة احترافية أكثر. راجِع وثائق Pinggy الرسمية للسحب الكامل.
تشغيل النفق بشكل دائم (autossh): عادةً ما تنقطع اتصالات SSH لأسباب الشبكة. إذا أردت إبقاء النفق فعالاً دائماً، استخدِم أداة
autossh
والتي تُراقب اتصال SSH وتعيد توصيله تلقائيًا عند الانقطاع. في macOS يمكنك تثبيته بـbrew install autossh
والتشغيل كالتالي:bashautossh -M 0 -t "ssh -p 443 -R0:localhost:443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected] x:localServerTls:servbay.new \"u:host:servbay.new\""
1خيار
-M 0
يعني عدم استخدام منفذ مراقبة إضافي حيث يعتمد autossh هنا على آليات الصيانة الداخلية في SSH.أوامر بدون Token: يسمح Pinggy بالحصول على أوامر استخدام فوري عبر موقعه دون الحاجة لمشاركة اسم المستخدم أو رمز الدخول في نص الأمر. هذا مثالي في حال منح الأوامر لأشخاص آخرين دون مخاوف أمنية.
حالات الاستخدام الشائعة
- العروض التوضيحية عن بُعد: عرض مواقعك أو تطبيقاتك البرمجية المحلية لعملاء أو فريق العمل دون رفعها إلى بيئة اختبار أو إنتاج.
- تصحيح Webhook: استقبال وفحص طلبات Webhook من خدمات خارجية (مثل بوابات الدفع، GitHub)، والعمل عليها محليًا.
- اختبار تعددية الأجهزة: فحص استجابة الموقع وتصميمه على أجهزة متعددة (هواتف، لوحيات) حتى عند عدم الاتصال بنفس الشبكة المحلية.
- التعاون الجماعي: تيسير إمكانية وصول أعضاء الفريق بسهولة لخدمات جارية على ServBay محليًا.
استكشاف الأخطاء الشائعة
العرض أو المشكلة | الحلول المحتملة |
---|---|
المهلة أو فشل الاتصال عبر SSH | تأكد من اتصال الإنترنت، وإمكانية الوصول إلى a.pinggy.io . افحص إعدادات الجدار الناري حول المنفذ 443. تحقق من صحة اسم المستخدم لـ Pinggy. |
عنوان Pinggy لا يعمل أو يُظهر خطأ (مثل 502 Bad Gateway) | تحقق أن الموقع أو الخدمة المحلية تعمل على ServBay وتستمع على المنفذ المذكور (localhost:443 أو ما يوافقه في الأمر). افحص إعدادات خادم ServBay (Caddy/Nginx). |
ظهور خطأ 404 أو صفحة ServBay الافتراضية عبر رابط Pinggy | إذا قمت بإعداد عدة مواقع (virtual hosts) على ServBay، يجب تأكيد أن الخيارات x:localServerTls و u:host في الأمر تم ضبطها للعنوان الصحيح الخاص بموقعك المحلي (مثل myproject.servbay.demo ). |
انقطاع الاتصال من حين لآخر | غالبًا بسبب تقلبات شبكة الإنترنت أو مهلة SSH. جرب زيادة قيمة ServerAliveInterval أو استخدم autossh للتوصيل التلقائي (انظر قسم النصائح المتقدمة). |
أخطاء شهادة HTTPS | Pinggy غالبًا يوفر شهادات CA عامة للمستخدمين المجانيين. إذا كنت تستخدم شهادة موقعة ذاتيًا محليًا، قد تظهر رسالة تحذيرية في المتصفح. الشهادة العامة من Pinggy يجب أن تزيل هذا التحذير للمستخدمين عبر الإنترنت. تحقق أيضًا أن الخدمة المحلية تستمع فعلًا عبر HTTPS (المنفذ 443). |
ملخص الحل
يوفر Pinggy لمستخدمي ServBay وسيلة احترافية وسريعة لإعداد قناة آمنة للوصول إلى المواقع والتطبيقات المحلية عبر الإنترنت، ويقدم عدة مزايا بارزة:
- لا حاجة لتثبيت عميل: يسهل الإعداد والاستخدام.
- أوامر مبسطة: أمر واحد بـ SSH كافٍ لتشغيل النفق.
- دعم HTTPS تلقائي: شهادات CA عامة مجانية دون إعداد يدوي.
- يدعم HTTP وTCP: مناسب لأنواع مختلفة من الخدمات.
- تكامل فائق مع ServBay: ضبط رأس
Host
يسمح بإتاحة مواقع محددة بكل سهولة. - أوامر دون Token: يعزز الأمان عند مشاركة أوامر فتح النفق.
إجمالاً، Pinggy هو طريقة خفيفة وفعّالة لمطوري ServBay لإجراء اختبارات سريعة، تقديم عروض، أو مشاركة الخدمات بشكل مؤقت مقارنة بالأدوات التقليدية المعقدة. أما بالنسبة للحالات التجارية التي تتطلب استقرار طويل المدى أو اسم نطاق مخصص، فتوفر خطة Pinggy المدفوعة خيارات مثالية. يمكّن الجمع بين بيئة تطوير ServBay المتكاملة ومرونة Pinggy من تعزيز إنتاجيتك ورفع مستوى التعاون البرمجي.