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

Wie wähle ich eine statische Portnummer für eine benutzerdefinierte App aus?

Wenn Sie die genaue Art der Umgebung, in der Ihre Anwendung ausgeführt wird, nicht vorhersagen können, kümmern Sie sich einfach nicht darum. Wählen Sie eine beliebige Zahl über 1024 und machen Sie sie konfigurierbar, damit der Benutzer sie im Falle eines Konflikts mit einem anderen Dienst/einer anderen Anwendung ändern kann.

Natürlich können Sie trotzdem sehr gebräuchliche Ports wie 8080 (alternativ HTTP) oder 3128 (Proxies wie Squid), 1666 (notwendigerweise) usw. vermeiden. Eine umfassende Liste bekannter Ports finden Sie hier, oder werfen Sie einen Blick auf /etc/services .


Wenn Sie sich nicht um die Portnummer kümmern und nichts dagegen haben, dass sie sich jedes Mal ändert, wenn Ihr Programm ausgeführt wird, binden Sie den Port einfach nicht, bevor Sie ihn abhören (oder binden Sie mit Port 0, wenn Sie binden möchten eine bestimmte IP-Adresse). In beiden Fällen weisen Sie das Betriebssystem an, einen freien Port für Sie auszuwählen.

Nachdem Sie mit dem Zuhören begonnen haben, verwenden Sie getsockname um herauszufinden, welcher Port ausgewählt wurde. Sie können es in eine Datei schreiben, es auf dem Bildschirm anzeigen, es einem Kind über fork erben lassen usw.


Prüfen Sie bei einer statischen Anwendung /etc/services um einen Port zu finden, der nicht mit irgendetwas anderem kollidiert, das Sie verwenden, und der an anderer Stelle nicht allgemein verwendet wird.

$ tail /etc/services
nimspooler      48001/udp                       # Nimbus Spooler
nimhub          48002/tcp                       # Nimbus Hub
nimhub          48002/udp                       # Nimbus Hub
nimgtw          48003/tcp                       # Nimbus Gateway
nimgtw          48003/udp                       # Nimbus Gateway
com-bardac-dw   48556/tcp                       # com-bardac-dw
com-bardac-dw   48556/udp                       # com-bardac-dw
iqobject        48619/tcp                       # iqobject
iqobject        48619/udp                       # iqobject

Linux
  1. Wie erstelle ich eine For-Schleife mit einer veränderbaren Anzahl von Iterationen?

  2. Wie kann ich eine benutzerdefinierte Autovervollständigung für bestimmte Befehle angeben?

  3. Linux – Wie wird ein Remote-Dateisystem mit Angabe einer Portnummer gemountet?

  4. Wie konfiguriere ich Desktop für eine statische IP-Adresse?

  5. So führen Sie den Ping-Befehl nur für N Pakete aus

Bash für Schleife

So suchen Sie unter Linux nach Listening Ports (Ports in use)

So finden Sie die Portnummer eines Dienstes in Linux

So pingen Sie eine Portnummer in Linux an

So pingen Sie eine bestimmte Portnummer an

Gewusst wie:Benutzerdefinierter RDP-Port in Windows 2012