किसी नई सेवा के लिए डिफ़ॉल्ट टीसीपी / आईपी पोर्ट चुनने के बारे में कैसे जाना चाहिए?


110

टीसीपी / आईपी पोर्ट पर सुनने वाले ऐप को विकसित करते समय, किसी डिफ़ॉल्ट पोर्ट को चुनने के बारे में कैसे जाना चाहिए? मान लें कि यह एप्लिकेशन कई कंप्यूटरों पर स्थापित किया जाएगा, और यह कि पोर्ट संघर्ष से बचना वांछित है।


1
इसका बेहतर उत्तर यहाँ दिया गया है: stackoverflow.com/questions/10476987/…
मैट

जवाबों:


49

यहां जाएं और विवरण के साथ एक पोर्ट चुनेंUnassigned


11
आप सुझाव दे रहे हैं कि वह 100 के तहत एक पोर्ट चुनता है?
एमपीएन

3
मुझे कौन सा चुनना चाहिए?
ओवेन

1
यदि सभी डेवलपर्स उस तर्क से जाते हैं, तो इसका मतलब होगा कि सभी नई सेवाएं कुछ अनचाही बंदरगाहों के आसपास इकट्ठा होती हैं। क्या संभावना होगी कि एक सेवा असाइन किए गए पोर्ट बनाम बिना असाइन किए गए पोर्ट पर चल रही हो। (क्षमा करें, यदि मैं कुछ व्यापार रहस्य उजागर नहीं कर रहा हूँ :)
hultqvist

1
यदि आप एक आंतरिक नेटवर्क पर उपयोग करने के लिए एक बंदरगाह की तलाश कर रहे हैं, तो कृपया इस प्रश्न पर एक समान प्रश्न पर विचार करें: stackoverflow.com/questions/218839/…
adrianwadey

32

पहला कदम: आईएएनए लिस्टिंग देखें :

वहां आप सूची की पूंछ पर देखेंगे

"डायनामिक और / या प्राइवेट पोर्ट्स 49552 में से 65535 हैं।"

इसलिए वे आपके बेहतर दांव होंगे, लेकिन एक बार जब आप एक को चुन लेते हैं तो आप उस पर हमेशा यह देख सकते हैं कि क्या कोई लोकप्रिय पर्याप्त ऐप है जो पहले ही "दावा" कर चुका है


8
लेकिन एक डायनेमिक पोर्ट का उपयोग करने से मुझे रुक-रुक कर (हालांकि दुर्लभ) पोर्ट संघर्ष का सामना नहीं करना पड़ेगा? शायद यह पंजीकृत सीमा में एक बंदरगाह का उपयोग करने के लिए सुरक्षित है जो अप्रकाशित है या एक अस्पष्ट एप्लिकेशन को सौंपा गया है।
केविन वोंग

4
जब तक आप स्पष्ट रूप से IANA के साथ अपनी पोर्ट पसंद को पंजीकृत नहीं करते हैं, तब तक आप "UNASSIGNED" का उपयोग करके एक ही संघर्ष बाधाओं को चलाते हैं। वास्तव में चूंकि कम अंत में बहुत से अनसाइनड हैं, उन पर संभवतः IMHO अधिक होगा
curtisk

2
हमेशा संभावित सीमाओं से निपटने के लिए उपयोगकर्ता / व्यवस्थापक कॉन्फ़िगर करने योग्य पोर्ट के विकल्प के साथ, अनिर्दिष्ट श्रेणी के साथ शुरू करें। केवल तभी जब आपका आवेदन व्यापक उपयोग तक पहुँचता है (बिटटोरेंट, या कुछ अन्य बड़े उपयोग के बारे में सोचें) क्या आपको वास्तव में निर्दिष्ट पोर्ट के लिए आवेदन करने पर विचार करना चाहिए। अन्यथा निर्धारित सीमा से बाहर रहें। यदि यह कड़ाई से आंतरिक / व्यक्तिगत कुछ के लिए है, तो बस विभिन्न सेवाओं के उपयोग में बंदरगाहों का दस्तावेजीकरण करें और आपको ठीक होना चाहिए जब तक लोग उन्हें ऑनलाइन कहीं भी देख सकते हैं। गैर-परिवर्तनीय आईपी के समान निजी / गतिशील रेंज के बारे में सोचें - वे छोटे / निजी उपयोग के लिए एकदम सही हैं।
jefflunt

3
बस यह मानने की गलती न करें कि आपके ऐप को IANA असाइन किए गए पोर्ट की आवश्यकता है क्योंकि आपको लगता है कि आपका ऐप उपयोग में आने से पहले ही फट जाएगा। :)
jefflunt

7
डायनेमिक रेंज के बारे में, मुझे लगता है कि "संघर्ष" प्रश्न पूछ रहा होगा कि क्या, अगर कोई ओएस एपेरमोरल पोर्ट्स के लिए उस रेंज का उपयोग कर रहा है (जैसा कि उसे करना चाहिए), क्या यह उस पोर्ट के साथ एक संघर्ष में चलेगा जिसे आपने चुना था यदि ओएस बेतरतीब ढंग से फैसला करता है कुछ आउटबाउंड कनेक्शन जैसे उदाहरण के लिए उस पोर्ट का उपयोग करने के लिए। (इस श्रेणी का यादृच्छिक उपयोग वह है जो पंचांग पोर्ट के लिए होता है, जैसा कि मैं इसे समझता हूं।) इस अन्य प्रश्न को देखें जो चिंता को और अधिक विस्तार से बताता है।
गैरेट विल्सन

7

यदि व्यापक रूप से उपयोग किया जाता है, तो इसका मतलब है कि आप भविष्य में इसका उपयोग करने वाले अन्य लोगों से बचाव करना चाहते हैं, आप इसे इना द्वारा अपने ऐप के लिए आरक्षित के रूप में चिह्नित कर सकते हैं


5

आधिकारिक IANA पोर्ट नंबरों और गैर-आधिकारिक पोर्ट नंबरों की सबसे व्यापक सूची जो मुझे पता है, वह है nmap-services


2

आप शायद इस सूची के किसी भी पोर्ट का उपयोग करने से बचना चाहते हैं (विकिपीडिया) ।

मैं सिर्फ एक चुनूंगा, और एक बार ऐप को आम लोगों द्वारा उपयोग करने के बाद, पोर्ट नंबर पहचाना जाएगा और ऐसी सूचियों में शामिल किया जाएगा।


2

जैसा कि अन्य उल्लेख करते हैं, आईएएनए की जांच करें।

फिर अपने स्थानीय सिस्टम / आदि / सेवाओं को यह देखने के लिए जांचें कि क्या कुछ कस्टम पोर्ट पहले से उपयोग में हैं।

और कृपया, इसे हार्डकोड न करें। सुनिश्चित करें कि यह विन्यास योग्य है, किसी न किसी तरह, - यदि कोई अन्य कारण नहीं है कि आप एक ही समय में अपने स्वयं के स्थानीयकृत बिल्ड का उपयोग करके कई डेवलपर्स के लिए सक्षम होना चाहते हैं।


1

आईएएनए सूची में से एक अनसाइनड को चुनना आमतौर पर पर्याप्त होता है, लेकिन यदि आप व्यावसायिक रूप से जारी उत्पाद के बारे में बात कर रहे हैं, तो आपको वास्तव में आईएएनए को आवेदन करना चाहिए कि वह आपको सौंपा जाए। ध्यान दें कि ऐसा करने की प्रक्रिया सरल लेकिन धीमी है; पिछली बार मैंने एक के लिए आवेदन किया था, इसमें एक साल लग गया।


1

यदि यह एक ऐसे अनुप्रयोग के लिए है जिसका आप व्यापक रूप से उपयोग किए जाने की अपेक्षा करते हैं, तो यहां एक संख्या दर्ज करें, ताकि कोई अन्य इसका उपयोग न करे।

अन्यथा, बस एक अप्रयुक्त को यादृच्छिक रूप से चुनें।

डायनेमिक रेंज में किसी एक का उपयोग करने में समस्या यह है कि यह उपलब्ध नहीं हो सकता है क्योंकि इसका उपयोग डायनेमिक पोर्ट नंबर के लिए किया जा सकता है।


0

Iana सूची का उपयोग करें। से csv फ़ाइल डाउनलोड करें:

https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv

और अपंजीकृत बंदरगाहों की खोज के लिए इस शेल स्क्रिप्ट का उपयोग करें:

for port in {N..M}; do if ! grep -q $port service-names-port-numbers.csv; then echo $port;fi; done;

और N और M के बजाय 2 नंबर लगाएं।


-1

ठीक है, आप कुछ सामान्य रूप से उपयोग किए जाने वाले पोर्ट नंबर का संदर्भ यहां दे सकते हैं और कोशिश कर सकते हैं कि किसी और का उपयोग न करें।

यदि "बड़े पैमाने पर जनता के लिए खुला" से आपका मतलब है कि आप अपने सिस्टम पर पोर्ट खोल रहे हैं, तो मैं आपके सिस्टम एडमिनिस्ट्रेटर के साथ चैट करूंगा कि वे किन पोर्ट्स के साथ ऐसा करने में सहज महसूस करते हैं।



-1

एक डिफ़ॉल्ट पोर्ट चुनें जो सबसे आम डेमॉन और सर्वर के साथ हस्तक्षेप नहीं करता है। यह भी सुनिश्चित करें कि पोर्ट नंबर को कुछ वायरस के लिए हमला वेक्टर के रूप में सूचीबद्ध नहीं किया गया है - कुछ कंपनियों की सख्त नीतियां हैं जहां वे ऐसे बंदरगाहों को अवरुद्ध करते हैं, चाहे वे कुछ भी हों। अंतिम लेकिन कम से कम, सुनिश्चित करें कि पोर्ट नंबर कॉन्फ़िगर करने योग्य है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.