Antworten:
(2 ^ 16) -1 oder 0-65.535 (der -1 ist, weil Port 0 reserviert und nicht verfügbar ist). (bearbeitet, weil o_O Tync mich daran erinnert hat, dass wir Port 0 nicht verwenden können, und Steve Folly mich daran erinnert hat, dass Sie nach dem höchsten Port gefragt haben, nicht nach der Anzahl der Ports.)
Aber du gehst das wahrscheinlich falsch an. Es gibt Leute, die für und gegen Nicht-Standard-Ports argumentieren. Ich sage, sie sind irrelevant, außer für den gelegentlichsten Scanner, und der gelegentlichste Scanner kann durch die Verwendung aktueller Software und geeigneter Firewall-Techniken zusammen mit sicheren Passwörtern in Schach gehalten werden. Mit anderen Worten: Best Practices für die Sicherheit.
Obwohl 1-65535 legitime TCP-Ports sind und 1-1023 für bekannte Port-Services gelten. Es kann vorkommen, dass Sie zufällige Probleme mit Ihren eigenen Diensten haben, wenn diese nach dem Einrichten eines kurzlebigen Ports gestartet werden. Für diejenigen, die es möglicherweise nicht wissen, sind kurzlebige Ports diejenigen, die lokal für entfernte Endpunkte (oder etwas in diesem Sinne) verbunden sind. Wenn Sie also einen TCP-Dienst schreiben, der auf Port 20001 lauscht, sind Sie möglicherweise heute ... und morgen gut. Aber eines Tages wird Ihr Dienst möglicherweise gestartet und versucht, eine Verbindung zu 20001 herzustellen, und er schlägt fehl, weil er als kurzlebiger Port verwendet wurde. Es gibt eine Lösung. Sie müssen von Ihrem Administrator oder von sich selbst die Richtlinie für den kurzlebigen Portbereich des Systems auf Ihrem Server ändern lassen. Auf Linux-Systemen erfolgt dies in zwei Schritten:
Beide Schritte müssen ausgeführt werden, ohne dass Sie einen Neustart planen. In diesem Fall ist der dynamische Schritt nicht erforderlich. Gehen Sie folgendermaßen vor, um Ihren Bereich auf 40000 bis 65535 festzulegen:
Dynamisch
echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range
oder
sysctl -w net.ipv4.ip_local_port_range="40000 65535"
Permanent
Fügen Sie Folgendes zu /etc/sysctl.conf hinzu:
net.ipv4.ip_local_port_range = 40000 65535
So lesen Sie die aktuelle Einstellung ab oder bestätigen die Änderung:
/sbin/sysctl net.ipv4.ip_local_port_range
Die Ausgabe wird ungefähr so aussehen:
net.ipv4.ip_local_port_range = 9000 65500
Stellen Sie sicher, dass Sie den Zweck Ihres Servers verstehen. Eine zu starke Reduzierung der Reichweite kann zu anderen Problemen führen.
Viel Spaß beim Codieren! (oder was auch immer du tust)