السلام عليكم
عندى سيرفر للعبة شغال كويس جدا على الشبكة الداخلية ,, هل هناك طريقة لفتح جهازى لإستقبال لاعبين من خارج الشبكة؟
السيرفر مكتوب بلغة السى شارب
اشكركم مقدما
السلام عليكم
عندى سيرفر للعبة شغال كويس جدا على الشبكة الداخلية ,, هل هناك طريقة لفتح جهازى لإستقبال لاعبين من خارج الشبكة؟
السيرفر مكتوب بلغة السى شارب
اشكركم مقدما
تم تعديل هذه المشاركة بواسطة samehvan في 4 يونيو 2009 في 20:00
الحل موجود. ابحث في جوجل او المنتدى عن port forwarding. سيفي بالغرض في حال لم تكن معلومات رقم المنفذ أو الـIP داخل الـpayload وهذا هو الشائع.
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
أولا أشكرك على متابعتك
ثانيا انا بحثت كتيير فعلا بس المشكلة اكبر من كده , وعلشان يكون طلبى واضح
انا شغال براوتر وشبكة محلية والمعروف ان كل الشبكات اللى بتشتغل براوتر بيتبقى واخده ارقام آى بى داخلية وكلها فى الإتصال بالنت بياخد رقم واحد يعنى لازم حل لمشكلة التعريف للجهاز السيرفر والأهم رقم ثابت لا يتغير مع كل ريستارت للراوتر او فصل للكهرباء
الفكرة التانية انى مش هعمل مجرد مشاركة للملفات او الفهارس ده هيبقى اتصال مباشر بسيرفر اللعبة يعنى مش مجرد صفحة تظهر للمتصل وهو يشغل اللى هو عاوزة لا المطلوب انه بمجرد اتصاله بالجهاز يكون الإتصال ده محول على السيرفر
لا مشكلة يا سيّدي. بالنسبة لأرقام IP الديناميكية استخدم DDNS. توجد خدمات مجانية بdomains قبيحة (لكن عملية وانا استخدمها شخصيا في المنزل)، و أخرى غير مجانية وتتيح لك خواص اكثر كشراء اسم كما تريد.
انا مسجل في خدمة no-ip.com و اخذت دومين something.no-ip.info ونزلت كلاينت noip في احدى الخادمات والبرنامج هذا يقوم بتحديث الـدومين كل 10 دقائق.
شخصيا استخدم نسخة اليونكس ومافيها مشاكل. جربت نسخة الوندوز وشكلا هي سهلة لكن لا أعلم كيف تعمل على المدى البعيد. أتوقع أنها جيدة أيضا.
بالنسبة للإتصال المباشر على السيرفر، فالـport forwarding أو الـdestination NAT كما يسميه البعض يقوم 100% بالذي تريد. لكن جاوب على هذا السؤال: هل في البرنامج الذي صممته يتم تبادل معلومات الـport و الـIP address داخل الـPayload للبكت؟
في حال كانت الإجابة "لا" ستكون في السليم. واذا كانت الإجابة "نعم" حينها ممكن تضع الخادم في الـDMZ. المودمات الصغيرة المخصصة لهذا الغرض لديها هذه الخاصية. والذي سيترتب عليه أن جميع البكتس التي لا ينطبق عليها port forwarding rule سيتم ارسالها إلى الخادم الذي حددته.
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
eech55 كتب:لا مشكلة يا سيّدي. بالنسبة لأرقام IP الديناميكية استخدم DDNS. توجد خدمات مجانية بdomains قبيحة (لكن عملية وانا استخدمها شخصيا في المنزل)، و أخرى غير مجانية وتتيح لك خواص اكثر كشراء اسم كما تريد.انا مسجل في خدمة no-ip.com و اخذت دومين something.no-ip.info ونزلت كلاينت noip في احدى الخادمات والبرنامج هذا يقوم بتحديث الـدومين كل 10 دقائق.
شخصيا استخدم نسخة اليونكس ومافيها مشاكل. جربت نسخة الوندوز وشكلا هي سهلة لكن لا أعلم كيف تعمل على المدى البعيد. أتوقع أنها جيدة أيضا.
بالنسبة للإتصال المباشر على السيرفر، فالـport forwarding أو الـdestination NAT كما يسميه البعض يقوم 100% بالذي تريد. لكن جاوب على هذا السؤال: هل في البرنامج الذي صممته يتم تبادل معلومات الـport و الـIP address داخل الـPayload للبكت؟
في حال كانت الإجابة "لا" ستكون في السليم. واذا كانت الإجابة "نعم" حينها ممكن تضع الخادم في الـDMZ. المودمات الصغيرة المخصصة لهذا الغرض لديها هذه الخاصية. والذي سيترتب عليه أن جميع البكتس التي لا ينطبق عليها port forwarding rule سيتم ارسالها إلى الخادم الذي حددته.
أشكرك مرة أخرى على متابعتك ولكن المشكلة ايضا ان ال No-ip تتصل بالراوتر وليس بجهازى فكيف يمكن حل هذه المشكلة؟
كل الذي تريده no-ip + portforward
port forward يقوم بإرسال أي شيء على منفذ خادم اللعبة إلى خادمك في الشبكة المحلية... هكذا هناك ربط.
no-ip حتى يحللك مشكلة تغيير الـip... ليس له علاقة بيتصل بالراوتر ولا الخادم أين. فقط حتى يعطيك الـip الحالي بفارق 10 دقائق زمن اكتشاف.
الظاهر تشابهت عليك الأمور... انس كل شي. فقط طبق port forward وقلنا اشتغل ام لا بناء على رقم IP فقط.. بعدين نقلك كيف تحل مشكلة تغيير الـip.
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
عملت الفوروارد وما زال الحال على ما هو عليه
اللعبة تعمل بشكل جيد على الشبكة الداخلية ولكن لا أحد يمكنه الإتصال من خارج الشبكة
ربما إذا اوضحت الفكرة قليلا يمكنك تحديد المشكلة بالضبط
اللعبة كأى لعبة متعددة اللاعبين تتكون من جزئين أولا الخادم وثانيا العميل او المستخدم وكلاهما مشروع منفصل
مشروع الخادم او السيرفر يستقبل البيانات من خلال البورت 9958 ويعمل على الآى بى الأساسى
مشروع العميل يستقبل البيانات من خلال البورت 5050
المشروعان دائمى الإتصال فى حالة التشغيل وحتى يتوقف احدهما
اللعبة تعمل بشكل ممتاز على الشبكة الداخلية حيث يحمل الخادم رقم الآى بى الأساسى وهو 199.53.61.2
ولا يشترط رقم أى بى المتصل فأى متصل يقوم الخادم بتسجيل رقمه والتعامل معه طوال التشغيل
الآن لنفرض ان رقم الأى بى العام للشبكة الداخلية عند الإتصال بالإنترنت هو 41.237.50.12
وبفرض أن ال no-ip ثابت على هذا الرقم فأى الأرقام سوف يتصل بها العميل هو سيتصل بالرقم العام بعد عمل ال forward ام بالرقم الداخلى لجهاز الخادم
عندما حاولت الأتصال بكلاهما لا يحدث اتصال
علما بأنى حملت ال appserv على جهاز الخادم وحاولت الدخول عليه من صفحة المتصفح وكانت النتيجة كالأتى
فى سطر العنوان 41.237.50.12
النتيجة الدخول على صفحة الراوتر
199.53.61.2
النتيجة
Server Application Error
The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance.
العنوان localhost
النتيجة
it's working
إذا كان هناك اى شئ آخر من الممكن ان يفيد برجاء إعلامى
وأعتذر جدا عن شغلى لوقتك
بالمناسبة هذه صورة للراوتر بعد عمل الفوروارد
تم تعديل هذه المشاركة بواسطة samehvan في 8 يونيو 2009 في 06:05
من أين جربت الدخول على 41.237.50.12 ؟
هذا يعتمد على الإتجاه. الـdestination nat او virtual server يعمل _فقط_ عندما يأتي الطلب من _الخارج_ إلى الداخل. وعندما يكون من الداخل إلى الداخل لن يعمل. لأن تطبيق الـvirtual servers يعتمد بشدة على المنافذ (من اين دخل وإلى أين سيذهب).
يعني حاول مرة أخرى تدخل على الرقم 41.237.50.12 _فعلا_ من الخارج. اطلب من أحد اصدقائك أو استخدم بروكسي (اذا كان يدعم) أو أي مصدر خارجي آخر وثم قلي النتيجة.
ملاحظة على جنب حلها بعدين: لماذا تستخدم 199.53.61.2 على خادم محلي؟ هل يدخل عليه أحد من الخارج؟ اي شيء لا يدخل عليه أحد من الخارج يجب تعطيه IP في المدى المحدد في RFC1918. واذا ماطبقته سيحل لديك blackhole في الشبكة المحلية عندما يطب عميل الدخول على 199.53.61.2 الحقيقي الموجود في Canada! على كل حال هذا ليس سبب المشكلة الحالية، لكن أقولها لك من باب الإنذار المبكر لمشكلة أخرى لا تشعر بها الآن.
تم تعديل هذه المشاركة بواسطة eech55 في 9 يونيو 2009 في 00:06
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
eech55 كتب:من أين جربت الدخول على 41.237.50.12 ؟هذا يعتمد على الإتجاه. الـdestination nat او virtual server يعمل _فقط_ عندما يأتي الطلب من _الخارج_ إلى الداخل. وعندما يكون من الداخل إلى الداخل لن يعمل. لأن تطبيق الـvirtual servers يعتمد بشدة على المنافذ (من اين دخل وإلى أين سيذهب).
يعني حاول مرة أخرى تدخل على الرقم 41.237.50.12 _فعلا_ من الخارج. اطلب من أحد اصدقائك أو استخدم بروكسي (اذا كان يدعم) أو أي مصدر خارجي آخر وثم قلي النتيجة.
ملاحظة على جنب حلها بعدين: لماذا تستخدم 199.53.61.2 على خادم محلي؟ هل يدخل عليه أحد من الخارج؟ اي شيء لا يدخل عليه أحد من الخارج يجب تعطيه IP في المدى المحدد في RFC1918. واذا ماطبقته سيحل لديك blackhole في الشبكة المحلية عندما يطب عميل الدخول على 199.53.61.2 الحقيقي الموجود في Canada! على كل حال هذا ليس سبب المشكلة الحالية، لكن أقولها لك من باب الإنذار المبكر لمشكلة أخرى لا تشعر بها الآن.
جميل جدا سلمت يداك وزادك الله علما ,, استقبلت الإتصال فعلا والحمد لله
أشكرك جزيلا على ذلك
لا اريد ان اثقل عليك فلو لديك من الوقت وسعة الصدر ان تكمل معى سأكون فى غاية الشكر وان لم يكن لديك وقت فسأتفهم وما زلت مجزلا لك الشكر
الآن هناك مشكلتين
الأولى ان الخادم لدى لا يعمل على الآى بى الثابت وإنما يعمل جيدا بالرقم المحلى ويستقبل من الخارج والداخل ولكن هذه مشكلة فالخادم يرسل رقم الآى بى الخاص بجهازى إلى العميل وفى هذه الحالة يرسل الرقم المخزن لديه وهو الرقم الداخلى وهنا عند ارسال عميل خارجى إلى الخادم يتم الإستقبال ولكن عند الإرسال من الخادم إلى العميل لا يستقبل العميل فهو لا يقبل إلا من الرقم الذى أرسله له الخادم فى بداية الإتصال
الثانية انه بعد تجربة ال no-ip وجدت انه يتغير وغير ثابت وإنما الثابت فقط هو عنوان الهوست عندما اكتبه كموقع مثلا Sword.noip وهذه ايضا مشكلة فالعميل يتعامل مع ارقام آى بى وليس عناوين نصية
وبالنسبة للمشكلة التى لفت نظرى إليها فهى نقطة ذكية منك فعلا ولم أنتبه إليها من قبل وأشكرك على ذلك
تم تعديل هذه المشاركة بواسطة samehvan في 10 يونيو 2009 في 01:19
اقتباسجميل جدا سلمت يداك وزادك الله علما ,, استقبلت الإتصال فعلا والحمد لله
اقتباسى الخاص بجهازى إلى العميل وفى هذه الحالة يرسل الرقم المخزن لديه وهو الرقم الداخلى وهنا عند ارسال عميل خارجى إلى الخادم يتم الإستقبال ولكن عند الإرسال من الخادم إلى العميل لا يستقبل العميل فهو لا يقبل إلا من الرقم الذى أرسله له الخادم فى بداية الإتصال
وهل يصل الرقم الذي ارسله الخادم الى العميل كما هو ؟
The World Must Be Crazy
newbie كتب:وهل يصل الرقم الذي ارسله الخادم الى العميل كما هو ؟
يصل العميل رقمين ,, الرقم الأول من خلال endpoint وهو الرقم العام طبعا لكن الخادم يقوم فى بداية الإتصال بإرسال رسالة نصيه تحمل رقم الآى بى والبورت المتاح للعميل وهنا تكمن المشكلة
تم تعديل هذه المشاركة بواسطة samehvan في 10 يونيو 2009 في 14:14
حسبما فهمت من السائل أن الإتصال مع الخادم ممكن بلا مشاكل، لكن المشكلة في الخطوة التالية عندما يتصل العميل البعيد من خلال شبكة الإنترنت بالعميل في الشبكة المحلية.
وعلى مايبدو أن وظيفة الخادم هي في المسار فقط لتعريف العملاء ببعضهم البعض مبدئيا. وعندما يتعلم العميل الخارجي رقم IP العميل الآخر الداخلي يحاول الإتصال فيه مباشرة. والمشكلة أن الخادم ينشر رقم آي بي العميل المحلي كما هو، وطبعا يستحيل على العميل الخارجي بدئ الإتصال. بعبارة ثانية: لو كان هناك عميلين وكلاهم في فضاء الإنترنت فلا توجد مشكلة. لكن المشكلة هو بين عميلين أحدهم محلي والآخر خارجي.
فسبب المشكلة في هذه الحالة أن هذا البروتوكول الذي صممه السائل ليس NAT friendly لأنه ينشر معلومات رقم الـIP أو الport داخل الـPayload في البكت نفسه. وهذا ماتحدثت عنه في البداية من أسباب فشل النات.
samehvan: هناك عدة حلول لهذه المشكلة:
لم أفهم ماهي المشكلة. القضية أن الـIP عندك ADSL في المنزل وعرضة للتغير. لهذا السبب تسجل دومين no-ip.info وبتثبيت _برنامج_ لديك يقوم بتحديث _آلي_ للـIP كل عشرة دقائق. فبالتالي الإسم ثابت تسهيلا للحفظ، بينما رقم الـIP يتغير تأقلما مع تغيير رقم الـADSL اذا حصل. وهذه ليست مشكلة. لو تضرب مثال عملي مع تفصيل دقيق يكون أحسن حتى أضمن أنني فهمتك كما يجب.اقتباسالثانية انه بعد تجربة ال no-ip وجدت انه يتغير وغير ثابت وإنما الثابت فقط هو عنوان الهوست عندما اكتبه كموقع مثلا Sword.noip وهذه ايضا مشكلة فالعميل يتعامل مع ارقام آى بى وليس عناوين نصية
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
eech55 كتب:لم أفهم ماهي المشكلة. القضية أن الـIP عندك ADSL في المنزل وعرضة للتغير. لهذا السبب تسجل دومين no-ip.info وبتثبيت _برنامج_ لديك يقوم بتحديث _آلي_ للـIP كل عشرة دقائق. فبالتالي الإسم ثابت تسهيلا للحفظ، بينما رقم الـIP يتغير تأقلما مع تغيير رقم الـADSL اذا حصل. وهذه ليست مشكلة. لو تضرب مثال عملي مع تفصيل دقيق يكون أحسن حتى أضمن أنني فهمتك كما يجب.
حاضر ,, سأقول لحضرتك فكرة المشروع بالضبط حتى يمكنك فهم كل شئ
بداية أنا بدأت المشروع ولم يكن فى ذهنى انه سيتوسع أو سيطلب منى فتحه خارج نطاق الشبكة المحلية وهو بإختصار متعدد الوظائف
توفير اتصال مباشر بين العملاء عن طريق خادم واحد يتحكم وينظم هذا الإتصال لتوفير
-تبادل معلومات بين العملاء
-محادثة نصية بين العملاء من خلال عدة قنوات (عام,خاص,محدود المدى)
-لعبة جماعية كاملة بنظام القتال المباشر بين الأفراد المتصلين حسب مستوى كل منهم
ولا أدرى اهو حسن ام سوء الحظ الذى كتب لهذا المشروع ان يلفت نظر الأفراد (من داخل الشبكة ولكن يريدون الإتصال من اجهزة خارجية) او من خارج الشبكة والإدارة التى اعمل بها وهنا اتت مشكلتى والسؤال الذى تدور حوله هذه المناقشة
هذا الخادم الأساسى الذى ينظم ويتحكم فى كل الرسائل القادمة من العملاء ومن ثم يوزعها او يتولى الرد عليها صمم للعمل على اى جهاز داخل الشبكة ولذا فإنه لا يحمل رقم آى بى خاص وإنما يقوم المشغل بإدخال رقم الجهاز الذى سيبدأ منه الخادم ويبدأ الإنصات لأى اتصال قادم ثم يتم إعلام كل المشتركين على الشبكة بهذا الرقم وبالتالى يتم تعديل ملف الإتصال لديهم (داخل مشروع العميل) ليتصل بهذا الرقم
ومن هنا تأتى المشكلة فعندما أبدا السيرفر أكتب رقم الجهاز الذى أعمل عليه وهو رقم داخلى (قمت بتجربة كتابة الرقم العام ولكن لم يتم اى اتصال سواء داخلى او خارجى) ويتم الإتصال فقط عندما اكتب رقم الجهاز الداخلى ثم عمل Forward للمنافذ والمشكلة تأتى من هذا الإختلاف فى الرقمين فكما ذكرت سابقا بمجرد إتصال اى عميل بالخادم يقوم مباشرة بالرد عليه برسالة نصية تحمل رقم الآى بى الذى بدأ منه الخادم والمنفذ المتاح وهذا الرقم يختلف لدى برنامج العميل عن الرقم الذى اتصل به وهنا تأتى المشكلة كلها
ما يجعل الأمر اكثر صعوبة هو ان نصف حزم البيانات التى يتم التعامل معها Packets تعتمد على هذا الرقم مما يشق على جدا إعادة بنائها
نسيت ان اوضح ما المشكلة مع تغير الآى بى , فكما اوضحت برنامج العميل لا يتصل بعنوان او اسم وإنما يتصل برقم آى بى ,كان من السهل التعديل عندما كانت المسألة محصورة داخل نطاق الشبكة ولا سيكون صعب جدا التعامل مع هذا التغير مع من هم خارجها فلا توجد وسيلة لإعلام الجميع بهذا التغير فور حدوثه
تم تعديل هذه المشاركة بواسطة samehvan في 10 يونيو 2009 في 17:38
حسبما فهمت أن رقم منفذ الخادم ثابت، لكن ماذا عن رقم رقم منفذ العملاء - ديناميكي أم ثابت؟
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
ديناميكى فى حدود المنافذ من 3500 إلى 6000
جيد. والعميل الخارجي يتصل بالخادم طبيعي، وثم الخادم يعطيه معلومات العميل الداخلي، لكن هنا العميل الخارجي لا يستطيع الإتصال بالعميل الداخلي. صح؟
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
eech55 كتب:جيد. والعميل الخارجي يتصل بالخادم طبيعي، وثم الخادم يعطيه معلومات العميل الداخلي، لكن هنا العميل الخارجي لا يستطيع الإتصال بالعميل الداخلي. صح؟
نعم هذا بالضبط ما يحدث ,, العميل الخارجى يبدأ الإتصال بشكل طبيعى جدا ثم يرد الخادم بالرقم ولكن بعد ذلك لا يمكن للخادم إرسال شئ آخر ويقف الإتصال على هذا
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…