GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist die maximale Portnummer?

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)


Linux
  1. Wie groß darf der Wert einer Linux-Umgebungsvariablen maximal sein?

  2. Welche Rolle spielt Magic Number beim Bootloading unter Linux?

  3. Was ist die maximale Anzahl von IPs, die einem bestimmten Computer zugewiesen werden können?

  4. Wie kann man die maximale Anzahl bestimmen, die übergeben werden muss, um die Option -j zu erstellen?

  5. Was ist das NSFS-Dateisystem?

Was ist die Shell unter Linux?

So finden Sie die Portnummer eines Dienstes in Linux

Der maximale Wert der Prozess-ID?

Öffnen eines Ports unter Linux

Was bedeutet POSIX?

Welche Alternativen gibt es neben Telnet zum Überprüfen offener Ports?