Lösung 1:
(2^16)-1 oder 0-65.535 (die -1 ist, weil Port 0 reserviert und nicht verfügbar ist). (Bearbeitet, weil o_O Tync mich daran erinnerte, dass wir Port 0 nicht verwenden können, und Steve Folly mich daran erinnerte, dass Sie nach dem höchsten Port gefragt haben, nicht nach der Anzahl der Ports)
Aber wahrscheinlich gehst du das falsch an. Es gibt Leute, die für und gegen Nicht-Standard-Ports argumentieren. Ich sage, sie sind irrelevant, außer für den lässigsten Scanner, und der lässigste Scanner kann in Schach gehalten werden, indem aktuelle Software und geeignete Firewall-Techniken zusammen mit starken Passwörtern verwendet werden. Mit anderen Worten:Best Practices für die Sicherheit.
Lösung 2:
1-65535 sind verfügbar und die Ports im Bereich 1-1023 sind privilegiert Einsen:Eine Anwendung muss als Root ausgeführt werden, um auf diese Ports zu lauschen.
Lösung 3:
Obwohl 1-65535 legitime TCP-Ports sind und es stimmt, dass 1-1023 für bekannte Portdienste sind. Es können zufällige Probleme mit Ihren eigenen Diensten auftreten, wenn sie gestartet werden, nachdem ein kurzlebiger Port eingerichtet wurde. Für diejenigen, die es vielleicht nicht wissen, flüchtige Ports sind solche, die lokal für entfernte Endpunkte verbunden sind (oder etwas Ähnliches). Wenn Sie also einen TCP-Dienst schreiben, der auf Port 20001 lauscht, könnten Sie heute gut sein ... und morgen. Aber eines Tages kann Ihr Dienst starten und versuchen, sich an 20001 zu binden, und es wird fehlschlagen, weil es als flüchtiger Port genommen wurde. Es gibt eine Lösung. Sie müssen Ihren Administrator oder Sie selbst bitten, die kurzlebige Portbereichsrichtlinie des Systems auf Ihrem Server zu ändern. Auf Linux-Systemen erfolgt dies in zwei Schritten:
- Dynamisch
- Dauerhaft
Beide Schritte müssen durchgeführt werden, es sei denn, Sie planen einen Neustart (in diesem Fall ist der Schritt Dynamisch nicht erforderlich). Um Ihren Bereich auf 40000 bis 65535 einzustellen, gehen Sie wie folgt vor:
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
Um die aktuelle Einstellung abzulesen oder die Änderung zu bestätigen:
/sbin/sysctl net.ipv4.ip_local_port_range
Die Ausgabe sieht in etwa so aus:
net.ipv4.ip_local_port_range = 9000 65500
Stellen Sie sicher, dass Sie den Zweck Ihres Servers verstehen. Eine zu starke Verringerung des Bereichs kann zu anderen Problemen führen.
Viel Spaß beim Programmieren! (oder was auch immer Sie tun)