تعيين منافذ TCP/IP للاستخدام الداخلي للتطبيقات

StackOverflow https://stackoverflow.com/questions/218839

  •  03-07-2019
  •  | 
  •  

سؤال

لقد قمت بكتابة خدمة WCF مستضافة بواسطة خدمة Windows وتحتاج إلى الاستماع إلى منفذ TCP/IP معروف.من أي نطاق يمكنني تخصيص منفذ بأمان للاستخدام داخل مؤسستي؟سيتم تضمين هذا المنفذ في ملفات التكوين الخاصة بالخدمة والعملاء الذين يستهلكون الخدمة.

هل كانت مفيدة؟

المحلول

واختيار رقم المنفذ من 49152 إلى 65535.

وIANA تنشر قائمة المنافذ المعينة حاليا.

http://www.iana.org/assignments/port-numbers

والحيوي و / أو منافذ خاصة هي تلك من 49152 إلى 65535. هذا هو النطاق من حيث يجب عليك اختيار ميناء للتطبيقات في المنزل الخاص بك. بالطبع أي منفذ ينتمون إلى واحدة من نطاقات غير المعينة على القائمة المنشورة يمكن استخدامها. ولكن انتبه أنه من خلال اختيار رقم منفذ من هذه النطاقات غير المعينة لا يوجد أي ضمان من أي نوع أن الميناء اخترت لن يكون ميناء محفوظة في المستقبل.

<اقتباس فقرة>   

وأرقام PORT المعينة لا ينبغي أن يكون   مستخدم. THE IANA سوف تخصيص رقم   FOR THE PORT بعد طلبك   تمت الموافقة.

وتأكد من أن رقم المنفذ الذي تختاره هو شكلي كما ذكرتم:

<اقتباس فقرة>   

وسوف تكون جزءا لا يتجزأ هذا الميناء في   ملفات التكوين لخدمة و   العملاء التي تستهلك   الخدمة.

وهذا سوف تجنب الصداع في حالة بعض 3rd الطرف الآخر الذي يمكن أن البرنامج لا لمسة ويستخدم رقم المنفذ الخاص بك. إذا كان هذا يحدث لك فقط على المضي قدما وتغييره في ملف التكوين، وأنه يعمل فقط.

نصائح أخرى

المنافذ 0-1023 هي المنافذ المعروفة ويتم تعيينها بواسطة IANA.يجب استخدامها فقط للبروتوكولات المخصصة على الشبكات العامة.

كان يُطلق على المنافذ 1024-65535 اسم أرقام المنافذ المسجلة (انظر rfc1700) ولكن تم تقسيمها الآن إلى منطقتين (انظر rfc6335).

المنافذ 1024-49151 هي منافذ المستخدم وهي المنافذ التي يجب استخدامها للبروتوكولات الخاصة بك.

المنافذ 49152-65535 هي المنافذ الديناميكية ولا ينبغي وصفها للبروتوكول.

يمكن استخدام منافذ المستخدم لأي بروتوكول، ولكن هناك عدد محدود، لذا فإن استخدامك سوف يتعارض مع استخدام شخص آخر على بعض الشبكات في مكان ما.تحتفظ IANA بسجل لأرقام المنافذ المسجلة (0-49151).إذا كان سيتم استخدام البروتوكول الخاص بك على الشبكات العامة، فيجب عليك النظر في تسجيله لدى IANA.إذا كنت تستخدمه فقط داخل شبكتك الخاصة، فاختر منفذًا داخل هذه المنطقة (49151-1024) وتحقق من هذا المنفذ مقابل سجل ايانا للتأكد من عدم استخدامه بواسطة بروتوكول يمكن استخدامه على شبكتك.بالنسبة للاستخدام الخاص، ربما يكون من الأفضل اختيار رقم تم تعيينه لبروتوكول تعرف أنه لن يتم استخدامه بدلاً من اختيار رقم غير مخصص وبالتالي قد يتم تعيينه في المستقبل.

لا تستخدم رقم منفذ ضمن النطاق الديناميكي. يتم تعيين هذه المنافذ بواسطة نظام التشغيل بشكل ديناميكي وعشوائي إلى حد ما.إذا قمت بفتح اتصال عميل (باستخدام bind() مع المنفذ=0) فسيتم تخصيص منفذ غير مستخدم لك من النطاق الديناميكي.لا توجد طريقة لضمان أن المنفذ الموجود في هذا النطاق سيكون دائمًا مجانيًا للبروتوكول الخاص بك.

والجواب باختصار: تجنب أي شيء وبما يصل إلى 1023 أو أكثر من 49152، واختبار ميناء المختار ضد الخدمات على الشبكة

إذا كنت قد اتخذت الاحتياطات المعقولة التي يبدو لديك (وضع رقم المنفذ في ملف التكوين)، فإنه لا ينبغي أن يكون اضطراب هائل إذا كنت في وقت لاحق اكتشاف الصراع.

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

وبالإضافة إلى اقتراحات أخرى حول اختيار ميناء التطبيقات الشائعة، فما استقاموا لكم فاستقيموا أقترح عليك أن تجعل ميناء شكلي داخل التطبيق الخاص بك. أرقام المنافذ الثابت تلوينها هي فكرة سيئة، خاصة إذا كنت في وقت لاحق العثور على الصراع الميناء مع تطبيق آخر وتحتاج إلى تغيير لك.

وهنا هو الموانئ التطبيقات الشائعة . جعل اختيارك في فتحة فارغة. ربما يجب عليك أيضا مسح الشبكة للحصول على أي تطبيق خاص في المنزل.

ومرتفعة عادة ميناء الأرقام المتاحة، وأود أن أقترح عليها ولكنها يمكن أن يكون قد تم حظره من قبل الجدران النارية.

وكما تذكر مذكرة للتحقق تلك المنفذ من قبل NETSTAT / أ / ن لمعرفة ما اذا كان استخدام من قبل تطبيق آخر أم لا. أجد من ويندوز فيستا استخدام 49152 .... لسبب مستوى التطبيق. في الأساس، لأن معظم المستمع مستوى النظام لا تنفيذ ميناء تقاسم خزينته الكثير لاستخدام هذه المنافذ التي لا تستخدم على الإطلاق.

ويكون يوم جميل البرمجة أمير

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top