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

Lesen Sie /proc, um zu erfahren, ob ein Prozess einen Port geöffnet hat

Ich kann zum Beispiel die Datei /proc/$PID/net/tcp lesen und Informationen über die vom Prozess geöffneten TCP-Ports erhalten.

Diese Datei ist keine Liste von TCP-Ports, die vom Prozess geöffnet wurden . Es ist eine Liste aller offenen TCP-Ports im aktuellen Netzwerk-Namespace und für Prozesse, die im selben Netzwerk-Namespace laufen, identisch zum Inhalt von /proc/net/tcp .

Um von Ihrem Prozess geöffnete Ports zu finden, müssten Sie eine Liste der Socket-Deskriptoren von /proc/<pid>/fd erhalten , und ordnen Sie diese Deskriptoren dann dem inode zu Feld von /proc/net/tcp .


Bitte

cat /proc/$PID/net/tcp

und Sie erhalten eine Ausgabe wie diese

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
  0: 00000000:01BB 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 2891985097 1 0000000000000000 100 0 0 10 0

Die zweite Spalte (local_address) der Ausgabe zeigt den Port in Hexadezimal. Verwenden Sie Ihren Programmierrechner, um den Hex-Code in Dezimal umzuwandeln.

Zum Beispiel ist hier der Port :01BB (in Hex) gleich 433 (in Dezimal), was der HTTPS-Standardport ist.


Linux
  1. Wie erhalte ich den Pfad eines Prozesses in Unix / Linux

  2. Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

  3. Wie lese ich unter Linux aus /proc/$pid/mem?

  4. Ändern Sie /proc/PID/environ nach dem Prozessstart

  5. Woher weiß ich, ob mein Linux-Server gehackt wurde?

Eine Anleitung zum Dateisystem „/proc“ unter Linux

/proc/cpuinfo- und /proc/meminfo-Dateien unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Woher weiß ich, welches /dev/ttyS* meine serielle Schnittstelle ist?

Wie finde ich heraus, aus welchem ​​Ordner ein Prozess läuft?

Welche Datei in /proc wird vom Kernel während des Bootvorgangs gelesen?