38 Stimmen

Überprüfen Sie alle geöffneten Sockets im Linux-Betriebssystem.

Mein Programm öffnet einen Socket mit dieser Funktion:

sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)

Nachdem die Daten gesendet wurden, wird der Socket geschlossen:

close(sockfd);

Das Problem ist jedoch, wenn das Programm nicht ordnungsgemäß läuft und blockiert ist. Dadurch wird der Socket nicht geschlossen.

Wie kann ich alle geöffneten Sockets unter Linux OS überprüfen?

59voto

Außerdem können Sie das ss-Dienstprogramm verwenden, um Socket-Statistiken abzurufen.

Zusammenfassung abrufen:

ss -s

Gesamt: 91 (Kernel 0)
TCP:   18 (aktiv 11, geschlossen 0, verwaist 0, synrecv 0, timewait 0/0), Ports 0

Transport Gesamt     IP        IPv6
*         0         -         -        
RAW       0         0         0        
UDP       4         2         2        
TCP       18        16        2        
INET      22        18        4        
FRAG      0         0         0

Alle Sockets anzeigen:

ss -a

UDP-Sockets anzeigen:

ss -u -a

TCP-Sockets anzeigen:

ss -t -a

Hier können Sie das Handbuch zu ss lesen: ss

51voto

Chankey Pathak Punkte 20094

/proc/net/tcp -eine Liste von offenen TCP-Sockets

/proc/net/udp -eine Liste von offenen UDP-Sockets

/proc/net/raw -eine Liste aller 'raw' Sockets

Dies sind die Dateien, verwenden Sie das cat Befehl, um sie anzuzeigen. Zum Beispiel:

cat /proc/net/tcp

Sie können auch den lsof Befehl verwenden.

lsof ist ein Befehl, der "list open files" bedeutet, der in vielen Unix-ähnlichen Systemen verwendet wird, um eine Liste aller offenen Dateien und der Prozesse, die sie geöffnet haben, anzuzeigen.

28voto

Nithin Bhaskar Punkte 686

Sie können den netstat Befehl verwenden

netstat --listen

Um offene Ports und hergestellte TCP-Verbindungen anzuzeigen,

netstat -vatn

Um nur offene UDP-Ports anzuzuzeigen, versuchen Sie den folgenden Befehl:

netstat -vaun

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X