HeadlinesBriefing HeadlinesBriefing.com

أنفاق HTTP ذاتية الاستضافة باستخدام SSH و Nginx

Hacker News •
×

يريد صديق أن يراجع مدونتك قيد التقدم، لكن معاينتها تعمل فقط على localhost:8080. عدة أدوات يمكن أن تساعد. بعض الأدوات تعمل كخدمة تجارية، مثل ngrok أو Cloudflare Quick Tunnels. بعض الأدوات قابلة للاستضافة الذاتية لكنها تتطلب عميلًا محددًا، مثل frp أو localtunnel. بعض الأدوات تحتاج فقط إلى عميل SSH عادي لكنها تعتمد على خادم SSH محدد، مثل sish. دعونا ننفذ حلًا ذاتيًا الاستضافة باستخدام فقط Open SSH و nginx!

أولاً، نقوم بإعادة توجيه الاتصالات من منفذ على خادم بعيد إلى خدمتك المحلية: `$ ssh -N -R 0:localhost:8080 web02.luffy.cx`. عندما تحدد `0` كمنفذ بعيد، يقوم الخادم بتعيين منفذ مجاني، مثل 41535. ثم، نقوم بتكوين nginx ليمثل طلبات من `https://p41535.ssh.luffy.cx` إلى `http://127.0.0.1:41535` باستخدام كتلة خادم تتطابق مع المنفذ في اسم النطاق.

كما نحتاج إلى إضافة سجلات DNS لـ `*.ssh.luffy.cx` والحصول على شهادة wildcard من خلال Let’s Encrypt. في حالتي، Nix OS يحصل على الشهادات تلقائيًا. يتم تحقيق التحكم في الوصول باستخدام وحدة ngx_http_secure_link_module، التي تحسب قيمة تجزئة على مجموعة من القيم، بما في ذلك سر، وتقارنها مع التجزئة من الطلب. يتم ترميز التجزئة بـ base64 وتوضع في عنوان URL كاسم مستخدم، جنبًا إلى جنب مع طابع زمني لانتهاء الصلاحية.

الكيانات الرئيسية: الشركات: Cloudflare, Let's Encrypt | المواقع: localhost:8080, web02.luffy.cx, p41535.ssh.luffy.cx, ssh.luffy.cx, acme.luffy.cx, Route 53

المصدر: Hacker News · لخّصه HeadlinesBriefing