مولد پورت تصادفی
جزئیات فنی
مولد پورت تصادفی چگونه کار میکند
این ابزار چه کاری انجام میدهد
مولد پورت تصادفی با استفاده از crypto.getRandomValues() و نمونهگیریِ ردّیِ بدون سوگیری، یک یا چند شماره پورت TCP/UDP را از بازه IANA درخواستی انتخاب میکند. بهصورت پیشفرض هم از پورتهای شناختهشده و هم از یک فهرست گزینششده از پورتهای رایج توسعه (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، پورتهای رایج پایگاهداده، سرورهای توسعه رایج، صفهای پیام و سرویسهای کش استاندارد است.
دامهای رایج و حالتهای لبهای
تخصیص تصادفی پورت بررسی نمیکند که پورت واقعاً روی دستگاه شما آزاد است — این کار به یک تلاش bind در سطح سیستمعامل نیاز دارد. فهرست «اجتناب از پورتهای رایج» گزینششده است و جامع نیست؛ برخی پیشفرضهای خاص صنعت (Cassandra 9042، Elasticsearch 9300 و غیره) علامتگذاری شدهاند اما سرویسهای داخلی سفارشی ممکن است همچنان تداخل داشته باشند. اگر انتخاب اول با چیزی محلی تداخل داشت، یک دسته جدید تولید کنید.
چه زمانی از این ابزار استفاده کنیم در برابر کُد
هنگام پیکربندی یک سرویس یکباره یا نوشتن یک نمونه از ابزار مرورگری استفاده کنید. در اتوماسیون، ترجیحاً از سیستمعامل بخواهید یک پورت اختصاص دهد (bind به پورت 0 و خواندن مقدار انتخابشده) — این کار تضمین میکند پورت واقعاً آزاد است و از هرگونه رقابت بین انتخاب تصادفی و bind جلوگیری میکند.