2010-02-04 7 views
38

Dies ist ein wenig subjektiv, da es keine Regeln so zu sprechen gibt. Jedes Mal, wenn ich einen Server erstelle, denke ich mir: "Was ist der beste Port?" Ich denke, eine Antwort ist "Any, solange der Benutzer es ändern kann." Also, wie entscheiden alle anderen, wie man den Standardport wählt? Persönlich verwende ich etwas wie 8000-etwas, wenn es HTTP-bezogen ist, und ich habe bemerkt, dass dies ein ziemlich allgemeiner Trend ist. Aber was, wenn 8000 bereits benutzt wird? Verwenden Sie 8001? Es scheint ein wenig ad hoc zu sein, und ich nehme an, es ist so.Wie entscheiden Sie welchen Port zu verwenden?

Klar bin ich nicht der erste, der diese Frage gestellt hat; IANA pflegen eine port numbers Liste ... Welche führt mich auf den nicht zugewiesenen Bereich (48620-49150). Ich denke, wir sollten diese wirklich benutzen, aber warum nicht mehr Programmierer? Wie entscheiden Sie, was zu verwenden ist? wenn alle an # 1 starteten, würden wir alle 48620 verwenden.

+1

+1 für die Beantwortung Ihrer eigenen Frage – fupsduck

+1

Danke - Ich wollte jedem meinen Gedankengang erzählen, damit andere mich anrufen können, wenn ich falsch lag. –

Antwort

20

Ich glaube, Sie haben ziemlich viel Ihre Frage so viel beantwortet wie möglich ist; Es gibt nicht wirklich eine strenge Regel, der du hier folgen kannst, über das, was du gesagt hast. Aber allgemein:

  • Schauen Sie auf die IANA-Liste und wählen Sie einen Port, der nicht verwendet wird.
  • Wählen Sie eine Portnummer, die Sie sich leicht merken können.
  • Die Portnummer nicht im Code fixieren. Ein anderes Produkt hat möglicherweise den gleichen Port gewählt wie Sie und Sie wissen nie, wann Sie auf einem Server existieren müssen. Legen Sie die Portnummer also irgendwo in eine Konfigurationsdatei, damit sie bei Bedarf ohne eine erneute Kompilierung geändert werden kann. Die Möglichkeit, die Portnummer zu ändern, kann auch hilfreich sein, um Firewalls zu umgehen, ohne sie neu konfigurieren zu müssen. (Sie können immer auf den von Ihnen gewählten Wert zurückgreifen, wenn die Konfigurationsdatei nicht existiert.)
  • Es gibt ein Argument, dass Sie nicht etwas zu hoch wählen möchten, da es zu Konflikten mit dem für ephemeral ports verwendeten Bereich kommen kann. Es ist nicht so wahrscheinlich, dass Sie davon getroffen werden, aber es ist ein schweres Problem zu debuggen, wenn es passiert.

(Und wenn Sie einen Tipp für die Kommissionierung unvergesslichen Portnummern wollen, ich habe einmal mit jemandem, der Portnummern erinnerte auf Basis des Telefonanschlüsse von seinen Mitarbeitern.)

+0

"Schauen Sie sich die IANA-Liste und wählen Sie einen Port, der nicht verwendet wird" oder wählen Sie einfach eine große Zahl – Patrick

+2

Eine große Anzahl unter 49152 offensichtlich wusste ich, dass ich wirklich – Patrick

0

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

0

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

+0

Danke für die Bestätigung :) –

6

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

+4

Ich nehme an, Sie laufen immer als root? –

+5

ist es für das Doom-Spiel reserviert! Sie sollten es respektieren –

8

Einige leicht zu merken und angemessen nerdy unassigned (pro IANA) Ports:

27182 (e)

31415 (pi)

60221 (avagadro'S)

0

Wie wäre:

defaultPort = (new Random()).Next(48620, 49150); 
0

ziehe ich es auf diese Weise: (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 nehme ich die Nummer, die ich am meisten mag. Oder natürlich, ändern Sie den Bereich, wenn Sie einige strengere Grenzen haben, was akzeptable Zahlen sind.

0

Ich würde vorschlagen, nie einen Port verwenden, der eine große Zahl wie 5 Ziffern ist, da es einige andere Betriebssystemprozesse treffen und die Ephemeral-Ports zuweisen kann. Sie würden aufgrund seiner Beschränkungen mit "Bereits verwendete Fehler" beginnen.

Verwandte Themen