Wie sollte man einen Standard-TCP / IP-Port für einen neuen Dienst auswählen?

110

Wie sollte man bei der Entwicklung einer App, die einen TCP / IP-Port überwacht, einen Standardport auswählen? Angenommen, diese App wird auf vielen Computern installiert und es ist erwünscht, Portkonflikte zu vermeiden.

Kevin Wong
quelle
1
Dies wird hier besser beantwortet: stackoverflow.com/questions/10476987/…
matt2000

Antworten:

49

Gehen Sie hierher und wählen Sie einen Hafen mit der BeschreibungUnassigned

Kevin Wong
quelle
10
Sie schlagen vor, dass er einen Hafen unter 100 wählt?
Mpen
3
Welche soll ich nehmen ...?
Owen
1
Wenn sich alle Entwickler an diese Logik halten, bedeutet dies, dass sich alle neuen Dienste um die wenigen nicht zugewiesenen Ports versammeln. Wie hoch ist die Wahrscheinlichkeit, dass ein Dienst auf einem zugewiesenen Port im Vergleich zu einem nicht zugewiesenen Port ausgeführt wird? (Entschuldigung, wenn ich kein Geschäftsgeheimnis
preisgebe
1
Wenn Sie nach einem Port suchen, der in einem internen Netzwerk verwendet werden kann, prüfen Sie diese Antwort auf eine ähnliche Frage: stackoverflow.com/questions/218839/…
adrianwadey
32

Erster Schritt: Sehen Sie sich die IANA-Liste an :

Dort sehen Sie am Ende der Liste

"Die dynamischen und / oder privaten Ports sind die von 49152 bis 65535"

Das wären also Ihre besseren Wetten, aber sobald Sie eine ausgewählt haben, können Sie immer darauf googeln, um zu sehen, ob es eine ausreichend beliebte App gibt, die sie bereits "beansprucht" hat

Curtisk
quelle
8
Aber würde mich die Verwendung eines dynamischen Ports nicht für intermittierende (wenn auch seltene) Portkonflikte offen lassen? Vielleicht ist es sicherer, einen Port im registrierten Bereich zu verwenden, der nicht zugewiesen oder einer obskuren App zugewiesen ist.
Kevin Wong
4
Wenn Sie Ihre Portauswahl nicht explizit bei IANA registrieren, führen Sie die gleichen Konfliktquoten mit einem "UNASSIGNED" aus, wie ich denke. Da es im unteren Bereich viele nicht zugewiesene gibt, wären diese IMHO wahrscheinlich wahrscheinlicher
Curtisk
2
Beginnen Sie immer mit dem nicht zugewiesenen Bereich mit der Option eines vom Benutzer / Administrator konfigurierbaren Ports, um mögliche Konflikte zu lösen. NUR, wenn Ihre Anwendung eine breite Nutzung erreicht (denken Sie an BitTorrent oder eine andere große Nutzung), sollten Sie wirklich in Betracht ziehen, einen zugewiesenen Port zu beantragen. Andernfalls bleiben Sie außerhalb des zugewiesenen Bereichs. Wenn dies aus rein internen / persönlichen Gründen erfolgt, dokumentieren Sie einfach die von verschiedenen Diensten verwendeten Ports, und es sollte Ihnen gut gehen, solange die Benutzer sie irgendwo online nachschlagen können. Denken Sie an den privaten / dynamischen Bereich, der nicht routbaren IPs ähnelt - sie eignen sich perfekt für den kleinen / privaten Gebrauch.
Jefflunt
3
Machen Sie einfach nicht den Fehler anzunehmen, dass Ihre App einen von IANA zugewiesenen Port benötigt, da Sie glauben, dass Ihre App bei der Nutzung explodieren wird, bevor dies tatsächlich der Fall ist. :)
Jefflunt
7
In Bezug auf den Dynamikbereich denke ich, dass die "Konflikt" -Frage möglicherweise die Frage gestellt hat, ob, wenn ein Betriebssystem diesen Bereich für kurzlebige Ports verwendet (wie es sollte), dies zu einem Konflikt mit dem von Ihnen ausgewählten Port führen würde, wenn das Betriebssystem zufällig entscheidet um diesen Port beispielsweise für eine ausgehende Verbindung zu verwenden. (Die zufällige Verwendung dieses Bereichs ist, wie ich es verstehe, für kurzlebige Ports gedacht.) Siehe diese andere Frage, in der das Problem ausführlicher dargelegt wird.
Garret Wilson
7

Wenn durch weit verbreitete, du meinst du gegen andere Menschen schützen wollen es in Zukunft verwenden, können Sie sich bewerben , um es für Ihre Anwendung von der IANA als reserviert gekennzeichnet sind hier

jj33
quelle
5

Die umfassendste Liste der offiziellen IANA-Portnummern und nicht offiziellen Portnummern, die ich kenne, ist nmap-services .

Thorsten79
quelle
2

Sie möchten wahrscheinlich vermeiden, Ports aus dieser Liste (Wikipedia) zu verwenden.

Ich würde nur eine auswählen, und sobald die App von den Massen verwendet wird, wird die Portnummer erkannt und in solche Listen aufgenommen.

Mike Mazur
quelle
2

Wie andere erwähnen, überprüfen Sie IANA.

Überprüfen Sie dann Ihre lokalen Systeme / etc / services, um festzustellen, ob bereits einige benutzerdefinierte Ports verwendet werden.

Und bitte, codieren Sie es nicht fest. Stellen Sie sicher, dass es irgendwie konfigurierbar ist - wenn Sie aus keinem anderen Grund möchten, dass mehrere Entwickler gleichzeitig ihre eigenen lokalisierten Builds verwenden.

Zathrus
quelle
1

Die Auswahl eines nicht zugewiesenen Produkts aus der IANA-Liste ist normalerweise ausreichend. Wenn Sie jedoch über ein kommerziell freigegebenes Produkt sprechen, sollten Sie sich wirklich an die IANA wenden, um ein Produkt für Sie zuzuweisen. Beachten Sie, dass dies einfach, aber langsam ist. Das letzte Mal, als ich mich für einen bewarb, dauerte es ein Jahr.

Graeme Perrow
quelle
1

Wenn dies für eine Anwendung ist, von der Sie erwarten, dass sie weit verbreitet ist, registrieren Sie hier eine Nummer , damit sie von niemand anderem verwendet wird.

Andernfalls wählen Sie einfach eine nicht verwendete zufällig aus.

Das Problem bei der Verwendung eines im Dynamikbereich besteht darin, dass es möglicherweise nicht verfügbar ist, da es möglicherweise für eine dynamische Portnummer verwendet wird.

Mark Baker
quelle
-1

Nun, können Sie einige häufig verwendete Portnummern verweisen hier und versuchen , nicht zu Verwendung von jemand anderem.

Wenn Sie mit "für die breite Öffentlichkeit zugänglich" meinen, dass Sie Ports auf Ihren eigenen Systemen öffnen, würde ich mich mit Ihren Systemadministratoren darüber unterhalten, mit welchen Ports sie sich dabei wohl fühlen.

Adam Bellaire
quelle
-1

Wählen Sie einen Standardport, der die gängigsten Daemons und Server nicht beeinträchtigt. Stellen Sie außerdem sicher, dass die Portnummer nicht als Angriffsvektor für einige Viren aufgeführt ist. Einige Unternehmen haben strenge Richtlinien, nach denen sie solche Ports blockieren, egal was passiert. Stellen Sie zu guter Letzt sicher, dass die Portnummer konfigurierbar ist.

Alexander
quelle