ಯಾದೃಚ್ಛಿಕ ಪೋರ್ಟ್ ಜನರೇಟರ್
ತಾಂತ್ರಿಕ ವಿವರಗಳು
ರ್ಯಾಂಡಮ್ ಪೋರ್ಟ್ ಜನರೇಟರ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ
ಈ ಸಾಧನ ಏನು ಮಾಡುತ್ತದೆ
ರ್ಯಾಂಡಮ್ ಪೋರ್ಟ್ ಜನರೇಟರ್ crypto.getRandomValues() ಅನ್ನು ಬಯಾಸ್ ರಹಿತ ರಿಜೆಕ್ಷನ್ ಸ್ಯಾಂಪ್ಲಿಂಗ್ ಜೊತೆ ಬಳಸಿ, ಕೇಳಲಾದ IANA ಶ್ರೇಣಿಯಿಂದ ಒಂದು ಅಥವಾ ಹೆಚ್ಚು TCP/UDP ಪೋರ್ಟ್ ಸಂಖ್ಯೆಗಳನ್ನ ಆಯ್ಕೆಮಾಡುತ್ತದೆ. ಡೀಫಾಲ್ಟ್ ಆಗಿ ಇದು well-known ಪೋರ್ಟ್ಗಳನ್ನೂ ಮತ್ತು ವ್ಯಾಪಕವಾಗಿ ಬಳಸುವ ಡೆವಲಪ್ಮೆಂಟ್ ಪೋರ್ಟ್ಗಳ (3000, 8080, 5432, 6379, ಇತ್ಯಾದಿ) ಆಯ್ದ ಪಟ್ಟಿಯನ್ನೂ ತಪ್ಪಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ರಚಿಸಿದ ಸಂಖ್ಯೆಗಳು ಹೊಸ ಸ್ಥಳೀಯ ಸೇವೆಗಳಿಗೆ ತಕ್ಷಣ ಬಳಸಬಹುದಾಗಿರುತ್ತವೆ.
ಡೆವಲಪರ್ಗಳ ಸಾಮಾನ್ಯ ಬಳಕೆ ಪ್ರಕರಣಗಳು
ಹೊಸ ಮೈಕ್ರೋಸರ್ವಿಸ್ಗಳು, docker-compose ಸ್ಟ್ಯಾಕ್ಗಳು, ಅಥವಾ ಎಫೆಮರಲ್ ಟೆಸ್ಟ್ ಪರಿಸರಗಳನ್ನು ಸ್ಪಿನ್ ಅಪ್ ಮಾಡುವ ಡೆವಲಪರ್ಗಳು ಯೋಚನೆ ಇಲ್ಲದೆ ಕಾಂಫ್ಲಿಕ್ಟ್-ರಹಿತ ಪೋರ್ಟ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಲು ಈ ಉಪಕರಣವನ್ನು ಬಳಸುತ್ತಾರೆ. SRE ಗಳು IANA ಟೇಬಲ್ಗಳನ್ನು ಕೈಯಾರೆ ಸ್ಕ್ಯಾನ್ ಮಾಡದೆ ಹೊಸ ಆಂತರಿಕ ಸೇವೆಗಳಿಗೆ ಪೋರ್ಟ್ಗಳನ್ನು ಹಂಚಿಕೆಮಾಡುತ್ತಾರೆ. 'ephemeral' ಶ್ರೇಣಿ ಪ್ರೊಡಕ್ಷನ್ ಕರ್ಣಲ್ ವರ್ತನೆಗೆ ಹೊಂದುವ ಕಡಿಮೆ ಅವಧಿಯ ಸಾಕೆಟ್ಗಳು ಬೇಕಾಗಿರುವ ಕ್ಲೈಂಟ್-ಸೈಡ್ TCP ಟೆಸ್ಟ್ ಹಾರ್ನೆಸ್ಗಳಿಗೆ ಆದರ್ಶವಾಗಿದೆ.
ಡೇಟಾ ಸ್ವರೂಪಗಳು, ಪ್ರಕಾರಗಳು, ಅಥವಾ ರೂಪಾಂತರಗಳು
ಮೂರು ಪೂರ್ವನಿರ್ಧರಿತ ಶ್ರೇಣಿಗಳು ಲಭ್ಯವಿವೆ: Well-known (1–1023), Registered / Unprivileged (1024–49151), ಮತ್ತು Dynamic / Ephemeral (49152–65535). ರಚಿಸಲಾದ ಪ್ರತಿಯೊಂದು ಸಂಖ್ಯೆಯಿಗೂ ಅದರ ವರ್ಗೀಕರಣವನ್ನು ಅಂಕಿತಗೊಳಿಸಲಾಗುತ್ತದೆ. avoid-common-ports ಪಟ್ಟಿಯು HTTP/HTTPS, SSH, ಸಾಮಾನ್ಯ ಡೇಟಾಬೇಸ್ ಪೋರ್ಟ್ಗಳು, ಸಾಮಾನ್ಯ ಡೆವ್ ಸರ್ವರ್ಗಳು, ಮೆಸೇಜ್ ಕ್ಯೂಗಳು, ಮತ್ತು ಮಾನಕ ಕ್ಯಾಶ್ ಸೇವೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳು ಮತ್ತು ಎಡ್ಜ್ ಕೇಸ್ಗಳು
ರ್ಯಾಂಡಮ್ ಪೋರ್ಟ್ ಹಂಚಿಕೆ ನಿಮ್ಮ ಯಂತ್ರದಲ್ಲಿ ಆ ಪೋರ್ಟ್ ನಿಜವಾಗಿಯೂ ಖಾಲಿಯಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುವುದಿಲ್ಲ — ಅದಕ್ಕೆ OS-ಮಟ್ಟದ bind ಪ್ರಯತ್ನ ಅಗತ್ಯ. 'avoid common ports' ಪಟ್ಟಿಯು ಆಯ್ದ (curated) ಪಟ್ಟಿಯಾಗಿದೆ, ಸಂಪೂರ್ಣವಲ್ಲ; ಕೆಲವು ಉದ್ಯಮ-ನಿರ್ದಿಷ್ಟ ಡೀಫಾಲ್ಟ್ಗಳು (Cassandra 9042, Elasticsearch 9300, ಇತ್ಯಾದಿ) ಫ್ಲ್ಯಾಗ್ ಮಾಡಲಾಗುತ್ತವೆ, ಆದರೆ ಕಸ್ಟಮ್ ಆಂತರಿಕ ಸೇವೆಗಳು ಇನ್ನೂ ಕ್ಲ್ಯಾಶ್ ಆಗಬಹುದು. ಮೊದಲ ಆಯ್ಕೆ ಸ್ಥಳೀಯ ಯಾವುದೊಂದರೊಂದಿಗೆ ಕಾಂಫ್ಲಿಕ್ಟ್ ಆದರೆ ಹೊಸ ಬ್ಯಾಚ್ ಅನ್ನು ರಚಿಸಿ.
ಕೋಡ್ಗಿಂತ ಈ ಸಾಧನವನ್ನು ಯಾವಾಗ ಬಳಸಬೇಕು
ಒಮ್ಮೆ ಮಾತ್ರದ ಸೇವೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವಾಗ ಅಥವಾ ಒಂದು ಸ್ಯಾಂಪಲ್ ಬರೆಯುವಾಗ ಈ ಬ್ರೌಸರ್ ಉಪಕರಣವನ್ನು ಬಳಸಿ. ಆಟೊಮೇಶನ್ನಲ್ಲಿ, OS ನಿಂದಲೇ ಪೋರ್ಟ್ ಅನ್ನು ಅಸೈನ್ ಮಾಡಲು ಕೇಳುವುದನ್ನು (port 0 ಗೆ bind ಮಾಡಿ ಮತ್ತು ಆಯ್ಕೆಯಾದ ಮೌಲ್ಯವನ್ನು ಓದಿ) ಆದ್ಯತೆ ನೀಡಿ — ಇದರಿಂದ ಪೋರ್ಟ್ ನಿಜವಾಗಿಯೂ ಖಾಲಿಯಿದೆ ಎಂಬುದು ಖಚಿತವಾಗುತ್ತದೆ ಮತ್ತು ರ್ಯಾಂಡಮ್ ಆಯ್ಕೆ ಮತ್ತು bind ನಡುವಿನ ಯಾವುದೇ ರೇಸ್ ಅನ್ನು ತಪ್ಪಿಸುತ್ತದೆ.