यादृच्छिक पोर्ट जनरेटर
तांत्रिक तपशील
रँडम पोर्ट जनरेटर कसा कार्य करतो
हे टूल काय करते
रँडम पोर्ट जनरेटर विनंती केलेल्या IANA श्रेणीतून crypto.getRandomValues() आणि बायस-रहित rejection sampling वापरून एक किंवा अधिक TCP/UDP पोर्ट नंबर निवडतो. डीफॉल्टने तो well-known पोर्ट्स तसेच मोठ्या प्रमाणावर वापरल्या जाणाऱ्या डेव्हलपमेंट पोर्ट्सची (3000, 8080, 5432, 6379, इ.) क्युरेट केलेली यादी टाळतो, त्यामुळे तयार झालेले नंबर नवीन लोकल सेवांसाठी लगेच वापरण्यायोग्य असतात.
डेव्हलपरसाठी सामान्य वापर प्रकरणे
नवीन मायक्रोसर्व्हिसेस, docker-compose स्टॅक्स, किंवा ephemeral टेस्ट वातावरणे उभी करणारे डेव्हलपर्स विचार न करता कॉन्फ्लिक्ट-फ्री पोर्ट्स निवडण्यासाठी हे साधन वापरतात. SREs IANA टेबल्स हाताने स्कॅन न करता नवीन अंतर्गत सेवांसाठी पोर्ट्स वाटप करतात. 'ephemeral' श्रेणी क्लायंट-साइड TCP टेस्ट हार्नेससाठी आदर्श आहे, ज्यांना प्रॉडक्शन कर्नल वर्तनाशी जुळणारे अल्पायुषी सॉकेट्स आवश्यक असतात.
डेटा फॉरमॅट्स, प्रकार किंवा व्हेरिएंट्स
तीन पूर्वनिर्धारित श्रेण्या उपलब्ध आहेत: Well-known (1–1023), Registered / Unprivileged (1024–49151), आणि Dynamic / Ephemeral (49152–65535). प्रत्येक तयार झालेल्या नंबरला त्याच्या वर्गीकरणासह annotate केले जाते. avoid-common-ports यादीत HTTP/HTTPS, SSH, सामान्य डेटाबेस पोर्ट्स, सामान्य डेव्ह सर्व्हर्स, मेसेज क्यूज, आणि मानक कॅश सेवांचा समावेश आहे.
सामान्य चुका आणि एज केसेस
रँडम पोर्ट वाटप तुमच्या मशीनवर तो पोर्ट प्रत्यक्षात मोकळा आहे का हे तपासत नाही — त्यासाठी OS-स्तरीय bind attempt आवश्यक असतो. 'avoid common ports' यादी क्युरेट केलेली आहे, सर्वसमावेशक नाही; काही उद्योग-विशिष्ट डीफॉल्ट्स (Cassandra 9042, Elasticsearch 9300, इ.) फ्लॅग केलेले असतात, पण कस्टम अंतर्गत सेवा तरीही क्लॅश होऊ शकतात. पहिली निवड स्थानिक काहीतरीशी कॉन्फ्लिक्ट झाली तर नवीन बॅच तयार करा.
कोडच्या तुलनेत हे टूल कधी वापरावे
एकदाच वापरायची सेवा कॉन्फिगर करताना किंवा नमुना लिहिताना हे ब्राउझर साधन वापरा. ऑटोमेशनमध्ये, OS ला पोर्ट असाइन करण्यास सांगणे (पोर्ट 0 ला bind करा आणि निवडलेले मूल्य परत वाचा) अधिक योग्य आहे — यामुळे पोर्ट प्रत्यक्षात मोकळा आहे याची खात्री होते आणि रँडम निवड व bind यांच्यातील कोणतीही रेस टळते.