Wie entscheiden Sie, welchen Port Sie verwenden möchten?

72

Dies ist etwas subjektiv, da es sozusagen keine Regeln gibt . Jedes Mal, wenn ich einen Server erstelle, denke ich mir: "Was ist der beste Port?" Ich denke, eine Antwort lautet "Beliebig, solange der Benutzer sie ändern kann." Wie entscheiden alle anderen, wie der Standardport ausgewählt wird? Persönlich verwende ich gerne etwas wie 8000 - etwas, wenn es mit HTTP zusammenhängt, und ich habe festgestellt, dass dies ein ziemlich häufiger Trend ist. Was aber, wenn 8000 bereits verwendet wird? 8001 verwenden? Es scheint ein wenig ad-hoc, und ich nehme an, es ist.

Natürlich bin ich nicht der erste, der diese Frage gestellt hat. IANA führt eine Liste mit Portnummern ... Dies führt mich zu dem nicht zugewiesenen Bereich (48620-49150). Ich denke, wir sollten diese wirklich verwenden, aber warum tun das nicht mehr Programmierer? Wie entscheiden Sie, welche Sie verwenden möchten? Wenn alle bei # 1 anfangen würden, würden wir alle 48620 verwenden.

Nick Bolton
quelle
6
+1 für die Beantwortung Ihrer eigenen Frage
Fupsduck
2
Danke - ich wollte allen meinen Denkprozess mitteilen, damit andere mich anrufen können, wenn ich falsch lag.
Nick Bolton

Antworten:

37

Ich denke, Sie haben Ihre Frage so gut wie möglich beantwortet. Es gibt nicht wirklich eine strenge Regel, die Sie hier über das hinaus befolgen können, was Sie gesagt haben. Aber allgemein:

  • Sehen Sie sich die IANA-Liste an und wählen Sie einen Port aus, der nicht verwendet wird.
  • Wählen Sie eine Portnummer, die leicht zu merken ist.
  • Korrigieren Sie nicht die Portnummer in Ihrem Code. Möglicherweise hat ein anderes Produkt denselben Port wie Sie ausgewählt, und Sie wissen nie, wann Sie auf einem Server koexistieren müssen. Fügen Sie die Portnummer daher irgendwo in eine Konfigurationsdatei ein, damit sie bei Bedarf ohne Neukompilierung geändert werden kann. Die Möglichkeit, die Portnummer zu ändern, kann auch hilfreich sein, um durch Firewalls zu gelangen, ohne sie neu konfigurieren zu müssen. (Sie können jederzeit den von Ihnen gewählten Wert verwenden, wenn die Konfigurationsdatei nicht vorhanden ist.)
  • Es gibt ein Argument, dass Sie nicht zu hoch wählen möchten, da dies zu Konflikten mit dem Bereich führen kann, der für kurzlebige Ports verwendet wird . Es ist nicht so wahrscheinlich, dass Sie davon betroffen sind, aber es ist ein schwieriges Problem, wenn es passiert.

(Und wenn Sie einen Tipp für die Auswahl einprägsamer Portnummern wünschen, habe ich einmal mit jemandem zusammengearbeitet, der sich an Portnummern erinnert hat, die auf den Telefonerweiterungen seiner Mitarbeiter basieren.)

Dave Webb
quelle
"Sehen Sie sich die IANA-Liste an und wählen Sie einen Port aus, der nicht verwendet wird" oder wählen Sie einfach eine große Anzahl
Patrick
8
Eine große Zahl unter 49152 offensichtlich wusste ich, dass ich es wirklich tat
Patrick
19

Einige leicht zu merkende und entsprechend nerdige nicht zugewiesene (gemäß IANA) Ports:

27182 (e)

31415 (pi)

60221 (Avagadro)

Cooper
quelle
11

Während des Testens ... immer Port # 666;)

Aistina
quelle
8
Ich nehme an, Sie laufen immer als root?
Josh Lee
14
Es ist für das Doom-Spiel reserviert! Sie sollten es respektieren
Anzeigename
1

Sie haben Ihre eigene Frage beantwortet? Wählen Sie einen nicht zugewiesenen Port aus und erlauben Sie dem Benutzer, ihn zu ändern.

fupsduck
quelle
1

Wie wäre es mit:

defaultPort = (new Random()).Next(48620, 49150);
Benny Jobigan
quelle
1

Ich bevorzuge diesen Weg: (Python-Code folgt)

#!/usr/bin/env python3
import random as R
r = R.SystemRandom()
print([r.randrange(1024, 65535) for x in range(4)])

Und dann wähle ich die Nummer, die mir am besten gefällt. Oder ändern Sie natürlich den Bereich, wenn Sie strengere Grenzen für akzeptable Zahlen haben.

Anzeigename
quelle
0

Nach einer schnellen Google-Suche, um sicherzustellen, dass es klar ist, wähle ich im Allgemeinen nur eine Reihe von persönlichen Bedeutungen.

James Cronen
quelle
0

Ich würde vorschlagen, niemals einen Port mit einer großen Zahl von 5 Ziffern zu verwenden, da er möglicherweise andere Betriebssystemprozesse trifft und die kurzlebigen Ports zuweist. Aufgrund der Einschränkungen wird der Fehler "Bereits verwendet" angezeigt.

mani_nz
quelle