stack_A
stack_A

Reputation: 763

check all socket opened in linux OS

My program opens a socket with this function:

sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)

After finish sending data the socket is closed:

close(sockfd);

But the issue is when the program doesn't run well and is blocking. Thereby the socket will not be closed.

How can I check all sockets opened under Linux OS ?

Upvotes: 43

Views: 233503

Answers (3)

Sasha Zezulinsky
Sasha Zezulinsky

Reputation: 1786

Also you can use ss utility to dump sockets statistics.

To dump summary:

ss -s

Total: 91 (kernel 0)
TCP:   18 (estab 11, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0

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

To display all sockets:

ss -a

To display UDP sockets:

ss -u -a

To display TCP sockets:

ss -t -a

Here you can read ss man: ss

Upvotes: 69

Nithin Bhaskar
Nithin Bhaskar

Reputation: 726

You can use netstat command

netstat --listen

To display open ports and established TCP connections,

netstat -vatn

To display only open UDP ports try the following command:

netstat -vaun

Upvotes: 32

Chankey Pathak
Chankey Pathak

Reputation: 21666

/proc/net/tcp -a list of open tcp sockets

/proc/net/udp -a list of open udp sockets

/proc/net/raw -a list all the 'raw' sockets

These are the files, use cat command to view them. For example:

cat /proc/net/tcp

You can also use the lsof command.

lsof is a command meaning "list open files", which is used in many Unix-like systems to report a list of all open files and the processes that opened them.

Upvotes: 57

Related Questions