Zufallsport-Generator
Technische Details
Wie der Zufallsport-Generator funktioniert
Was das Tool macht
Der Zufallsport-Generator wählt eine oder mehrere TCP/UDP-Portnummern aus dem gewünschten IANA-Bereich mithilfe von crypto.getRandomValues() mit unverzerrtem Rejection Sampling. Standardmäßig vermeidet er sowohl Well-known Ports als auch eine kuratierte Liste weit verbreiteter Entwicklungsports (3000, 8080, 5432, 6379 usw.), sodass die generierten Nummern sofort für neue lokale Dienste nutzbar sind.
Häufige Anwendungsfälle für Entwickler
Entwickler, die neue Microservices, docker-compose-Stacks oder kurzlebige Testumgebungen hochfahren, verwenden das Tool, um konfliktfreie Ports zu wählen, ohne nachdenken zu müssen. SREs weisen Ports für neue interne Dienste zu, ohne IANA-Tabellen manuell zu durchsuchen. Der „ephemeral“-Bereich ist ideal für clientseitige TCP-Test-Harnesses, die kurzlebige Sockets benötigen, die dem Verhalten des Produktionskernels entsprechen.
Datenformate, Typen oder Varianten
Es sind drei vordefinierte Bereiche verfügbar: Well-known (1–1023), Registered / Unprivileged (1024–49151) und Dynamic / Ephemeral (49152–65535). Jede generierte Nummer wird mit ihrer Klassifizierung versehen. Die Liste „avoid common ports“ umfasst HTTP/HTTPS, SSH, gängige Datenbankports, gängige Dev-Server, Message Queues und Standard-Cache-Dienste.
Häufige Fallstricke und Sonderfälle
Die zufällige Portzuweisung prüft nicht, ob der Port auf Ihrer Maschine tatsächlich frei ist — dafür ist ein Bind-Versuch auf Betriebssystemebene erforderlich. Die Liste „avoid common ports“ ist kuratiert, nicht vollständig; einige branchenspezifische Defaults (Cassandra 9042, Elasticsearch 9300 usw.) sind markiert, aber benutzerdefinierte interne Dienste können dennoch kollidieren. Generieren Sie eine neue Auswahl, wenn die erste Wahl mit etwas Lokalem kollidiert.
Wann dieses Tool statt Code verwenden
Verwenden Sie das Browser-Tool, wenn Sie einen einmaligen Dienst konfigurieren oder ein Beispiel schreiben. In der Automatisierung ist es besser, das Betriebssystem einen Port zuweisen zu lassen (an Port 0 binden und den gewählten Wert auslesen) — das garantiert, dass der Port tatsächlich frei ist, und vermeidet jedes Race zwischen Zufallsauswahl und Bind.