تثبيت ذاتي الاستضافة خلف عنوان IP غير "full-stack"

مرحبًا،

لأغراض الاختبار/التحقق، أقوم بتثبيت Discourse على جهاز Ubuntu محلي، وقد تم تعيين عنوان IP محلي ثابت، لنقل 192.168.1.200.
الجهاز خلف جهاز توجيه (Box) له عنوان IP عام، لنقل A.B.C.D، ليس من نوع Full-Stack. :roll_eyes:

لسبب خارج عن إرادتي، لا يمكنني تغييره إلى Full-Stack. لذا، أنا مقيد في عملية التوجيه (NAT) على جهاز التوجيه بنطاق من المنافذ الداخلية ذات قيم مرتفعة جدًا، أي لا 443 ولا 80.

لأغراض المثال، لنقل أنني قمت بفتح المنفذ الداخل 50000 عبر بروتوكولي TCP/UDP نحو 192.168.1.200 على المنفذ 443.

بناءً على ذلك، يجب أن يتم توجيه أي طلب يصل إلى العنوان العام A.B.C.D على المنفذ 50000 نحو 192.168.1.200:443.

لدي اسم نطاق فرعي، لنقل: forum.mondomaine.me، مع سجلات A و AAAA تشير إلى العنوان العام A.B.C.D (لـ IPv4).

أضفت إعادة توجيه على مستوى https://forum.mondomaine.me نحو عنواني العام A.B.C.D:50000.

عند محاولة الوصول إلى الرابط المذكور أعلاه، أرى بوضوح التحويل إلى A.B.C.D:50000، وطبعًا يحدث رفض لأنه لا يوجد (بعد) استماع على 192.168.1.200:443.

المشكلة الحقيقية تكمن في أن خطوة التحقق من إعدادات النطاق أثناء التثبيت (بالوضع Docker) لـ Discourse على جهازي تفشل:

/!\ يبدو أن المنفذ 443 على هذا الجهاز غير قابل للوصول باستخدام اسم النطاق: forum.mondomaine.me
/!\ فشل الاتصال أيضًا بـ http://forum.mondomaine.me (المنفذ 80).

يجب أن يكون هناك حل أو طريقة بديلة، لكنني حتى الآن لم أرها…

هل هي شبكة منزلية؟ هل من الممكن أن يكون مزود خدمة الإنترنت (ISP) الخاص بك يحظر حركة المرور؟ لماذا لا تستخدم خادمًا افتراضيًا خاصًا (VPS) بدلاً من ذلك؟

(تعديل: يُنصح باستخدام نفق Cloudflare المذكور في المستند المرتبط أعلاه)

شكرًا على الردود.

هل هذه شبكة منزلية؟

بما أنني أقوم بتثبيت Discourse على جهاز Ubuntu في منزلي، كما كتبت في البداية، نعم، إنها بالفعل شبكة منزلية.

هل من الممكن أن يقوم مزود خدمة الإنترنت الخاص بك بحظر حركة المرور؟

هذا هو بالضبط الحال عندما لا تكون عنوان IP العام مُهيأً بالكامل. وفي هذه المرحلة، لا أستطيع فعل أي شيء حيال ذلك.

لماذا لا تستخدم خادمًا افتراضيًا خاصًا (VPS) بدلاً من ذلك؟

لأنه بالنسبة لهذا الاختبار، لا أفكر في شراء خادم VPS. لكنني أتفق معك: سيكون خادم VPS هو الحل إذا كان لدي واحد جاهز. ولم أتردد في ذلك.

أما بخصوص استخدام نفق Cloudflare، فبناءً على ما لاحظته للتو، يبدو لي أنه تعقيد مفرط مقابل القليل من الفائدة… ثم إن Cloudflare…

لو كان من السهل والسريع تثبيت Discourse على شبكة محلية معزولة (أو غير معزولة) بنفس السهولة…

لقد رأيت بالفعل أن هناك دليلًا في مكان ما (وقد فقدت عنوانه بالفعل) يتعلق بشبكة داخلية، والذي بدا لي أيضًا معقدًا بعض الشيء، خاصة بالمقارنة مع التثبيت القياسي!

دعنا نتخلى عن الأمر، فهذا ليس أمرًا حيويًا، ولا أريد قضاء ساعات في ذلك. :laughing:

شكرًا مرة أخرى على الردود.

هل يمكنني تخطي هذه الخطوة أثناء الإعداد؟

كما تم شرحه في هذا المنشور من قبل Jay، يمكن تخطي فحص المنفذ باستخدام:

 --skip-connection-test

هل تحتاج إلى اتصال من خارج شبكتك المحلية (LAN) للاختبار أو كجزء من عملية التطوير الخاصة بك؟

أعتذر إذا كنت قد أساءت فهم المشكلة.

بالنسبة للوقت المستغرق لإصلاح كل شيء بين شبكتك الخاصة، وتوجيه مزود خدمة الإنترنت (ISP) لحركة المرور بشكل صحيح، وتأكيدك بعدم ترك أي أبواب مفتوحة أمام أي طرف مشبوه لاختطاف شبكتك المنزلية، فإن استخدام أنفاق Cloudflare يعتبر سهلًا ومباشرًا في رأيي، خاصةً على الشبكة المنزلية.

يتطلب Discourse استخدام HTTPS. ما لم تكن تعرف كيفية الحصول على شهادة وتثبيتها كما هو موضح في مكان آخر، فإن أفضل خيار لك هو تثبيت Discourse على اتصال إنترنت منزلي باستخدام نفق Cloudflare

أعتقد أن هذا هو الطريقة لتثبيت شهادتك الخاصة السماح بـ SSL / HTTPS لإعداد Docker الخاص بـ Discourse

شكرًا لك @Andrew_Rowe على النصيحة!

لا، لا أحتاج إلى اتصال قادم من خارج شبكتي المحلية (LAN) لـ الاختبار.

لذلك شغّلت install-discourse مع الخيار --skip-connection-test، وكما هو متوقع، استمرت عملية التثبيت دون أن تتوقف عند التحقق من النطاق.

يجب تذكر إيقاف nginx إذا كان يعمل بالفعل (خارج Docker).

لكن الأمر بخير! يعمل Discourse الآن داخل الحاوية الخاصة به!

لكن… يبدو أننا واجهنا الآن مشكلة في الشهادة.

nginx: [emerg] cannot load certificate “/shared/ssl/forum.mondomaine.me.cer”: PEM_read_bio_X509_AUX() failed (SSL: error:0480006C:PEM routines::no start line:Expecting: TRUSTED CERTIFICATE)

لقد اتبعت بالطبع هذا الموضوع وتحققت من وجود الملف /var/discourse/shared/ssl/forum.mondomaine.me.cer، وهو موجود، وكذلك الملف .key وملفين آخرين بامتداد .me_ecc.cer و .key.

أعدت بناء الحاوية، لكن النتيجة نفسها.

أؤكد أن تثبيت Discourse على جهاز اختبار محلي هو حقًا رحلة شاقة! :joy:

يبدو أن هذا غير مُشجَّع عليه.

وبدلاً من البحث عن حل بسيط (لا، لن أستخدم CloudFlare، فلا داعي للذهاب في هذا الاتجاه، شكرًا)، أعتقد أن هذا سيكون آخر رسالة لي حول هذا الموضوع. :grinning_face_with_smiling_eyes:

في الواقع، لا تشترينه بل تستأجرينه.

لا شك أن @merefield شكراً لك على التوضيح. سأوضح أيضاً ما أردت قوله: لا أخطط لإنفاق مال على خادم VPS.

فقط شيء آخر، لاحظت أن أمر docker run يتضمن DISCOURSE_FORCE_HTTPS=true، لذا قمت بتغييره إلى false ثم أعدت تشغيله بعد إعادة بناء الحاوية.

لا يوجد أي تغيير.

إذا لم تكن تنوي استخدام نفق على غرار Cloudflare وتريد فقط التصفح، فاستخدم dev-install

شكرًا لك! سأراجع ذلك بالفعل.