Wie wähle ich die offene Portnummer?

7

Ich habe easyPHP installiert und einen Port in meiner Firewall geöffnet, damit andere Personen auf meinen Webserver zugreifen können. Der Standardport ist 8888. Aber ich frage mich, wie Sie eine Portnummer auswählen? Ist es wirklich mehrdeutig oder gibt es einen "bevorzugten" Bereich von Portnummern?

GeneCode
quelle
1
Im Allgemeinen ist jeder Port in Ordnung. Der Grund, warum viele Apps Ports wie 8888 oder 8080 verwenden, sind Ports, die keine Administratoren sind. Daher können viele Endbenutzer ohne Administratorrechte einfach einen Server starten. Dies funktioniert auch bei Pro-Webanwendungen. In vielen Fällen verbindet ein Front-End-Webproxy 8080 oder 8888 mit Port 80. Im Allgemeinen sollten Sie nur Port 80 verwenden, um den Zugriff zu vereinfachen. Alles andere würde so etwas wie 123.456.789.0:8080oder erfordern example:8080.
JakeGould
@ JakeGould Danke für deinen Kommentar, es hat mir wirklich geholfen.!
GeneCode
Möglicherweise verwandte Frage: stackoverflow.com/questions/10476987/…
glenneroo

Antworten:

23

Eine Portnummer ist eine 16-Bit-Ganzzahl ohne Vorzeichen und reicht daher von 0 bis 65535 (obwohl 0 für TCP nicht verwendet werden kann; hat eine besondere Bedeutung für UDP).

Sie können so ziemlich jede Portnummer im Bereich verwenden, es gibt jedoch einige Richtlinien:

  1. (Zumindest auf Unix-basierten Systemen) Nur Root kann an Ports unter 1024 binden.
  2. Idealerweise möchten Sie keinen Port, der normalerweise einem anderen allgemeinen Dienst zugeordnet ist, da dies bei einigen Firewalls zu Problemen führen kann.
  3. Erweitern von (2) oben - Zumindest auf Linux-Systemen gibt es eine Datei /etc/servicesmit einer Liste allgemeiner Dienste. Sie können diese als Anleitung verwenden.

Der "ideale" Port zum Ausführen eines HTTP-Dienstes ist Port 80, und der ideale Port für HTTPS ist 443, da diese Ports ihren jeweiligen Diensten zugeordnet sind. Wenn dies nicht praktikabel ist (und dies häufig nicht der Fall ist - einige Router sind zu dumm, um eine Webschnittstelle zu handhaben und den Port extern am selben Port weiterzuleiten), ist es üblich, einen "themenbezogenen" Port auszuwählen - Port 8080 ist ziemlich häufig ist Port 8000.

Davidgo
quelle
1
In modernen Windows-Versionen müssen Sie über Administratorrechte verfügen, um auch an Ports unter 1024 binden zu können.
Enkryptor
@enkryptor: Welche Versionen sind das? Ist das irgendwo dokumentiert?
Benutzer1686
@grawity Ich glaube, es ist Windows 7 und höher. Sie können einem Nicht-Administrator-Benutzer auch eine Berechtigung für eine bestimmte URL übernetsh http add urlacl
enkryptor
@enkryptor Ich habe Nginx auf Port 80, nicht-Localhost-IP, und ich bin kein Administrator in diesem System.
Braiam
@Braiam gut für Sie
Enkryptor