DevToys Web Pro iconDevToys Web Proבלוג
דרגו אותנו:
נסו את תוסף הדפדפן:

מחולל פורטים אקראיים

  • טווח
    כמות
    27361Registered (IANA-assigned)
    35688Registered (IANA-assigned)
    38557Registered (IANA-assigned)
    28960Registered (IANA-assigned)
    3244Registered (IANA-assigned)
    פרטים טכניים

    כיצד פועל מחולל הפורטים האקראיים

    מה הכלי עושה

    מחולל הפורטים האקראיים בוחר מספר פורטים אחד או יותר של TCP/UDP מתוך טווח ה-IANA המבוקש באמצעות crypto.getRandomValues() עם דגימת דחייה ללא הטיה. כברירת מחדל הוא נמנע גם מפורטים מוכרים (well-known) וגם מרשימה אוצרת של פורטי פיתוח נפוצים (3000, 8080, 5432, 6379 וכו'), כך שהמספרים שנוצרים ניתנים לשימוש מיידי עבור שירותים מקומיים חדשים.

    מקרי שימוש נפוצים למפתחים

    מפתחים שמרימים מיקרו-שירותים חדשים, מערכי docker-compose או סביבות בדיקה זמניות משתמשים בכלי כדי לבחור פורטים ללא התנגשות בלי לחשוב. אנשי SRE מקצים פורטים לשירותים פנימיים חדשים בלי לסרוק ידנית טבלאות IANA. טווח ה-"ephemeral" אידיאלי עבור harnesses של בדיקות TCP בצד הלקוח שזקוקים לשקעים קצרי-חיים התואמים להתנהגות הקרנל בסביבת ייצור.

    פורמטי נתונים, טיפוסים או וריאנטים

    זמינים שלושה טווחים מוגדרים מראש: Well-known ‏(1–1023), ‏Registered / Unprivileged ‏(1024–49151), ו-Dynamic / Ephemeral ‏(49152–65535). כל מספר שנוצר מסומן עם הסיווג שלו. רשימת ה-avoid-common-ports מכסה HTTP/HTTPS, ‏SSH, פורטים נפוצים של מסדי נתונים, שרתי פיתוח נפוצים, תורי הודעות ושירותי cache סטנדרטיים.

    מלכודות נפוצות ומקרי קצה

    הקצאת פורט אקראית אינה בודקת האם הפורט באמת פנוי במחשב שלכם — לשם כך נדרש ניסיון bind ברמת מערכת ההפעלה. רשימת "הימנעות מפורטים נפוצים" היא אוצרת ולא ממצה; ברירות מחדל מסוימות לפי תעשייה (Cassandra ‏9042, ‏Elasticsearch ‏9300 וכו') מסומנות, אך שירותים פנימיים מותאמים אישית עדיין עלולים להתנגש. צרו אצווה חדשה אם הבחירה הראשונה מתנגשת עם משהו מקומי.

    מתי להשתמש בכלי הזה לעומת קוד

    השתמשו בכלי הדפדפן בעת הגדרת שירות חד-פעמי או כתיבת דוגמה. באוטומציה, עדיף לבקש ממערכת ההפעלה להקצות פורט (בצעו bind לפורט 0 וקראו בחזרה את הערך שנבחר) — זה מבטיח שהפורט באמת פנוי ומונע מרוץ בין בחירה אקראית לבין bind.