Check port use in Linux
This article explains how to verify listening ports and port usage in a Linux® system.
Using the lsof command
lsof commandThe lsof (List Open Files) command produces a list of files that are currently open along with the processes that opened them. When combined with the grep command, the lsof command can conduct advanced searches and listings.
General lsof command
lsof command`lsof -i -P -n`
    [root@server-01 ~]# lsof -i -P -n
    COMMAND   PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
    chronyd   799 chrony    5u  IPv4   19739      0t0  UDP 127.0.0.1:323
    chronyd   799 chrony    6u  IPv6   19740      0t0  UDP [::1]:323
    sshd     1252   root    5u  IPv4   26992      0t0  TCP :22 (LISTEN)
    sshd     1252   root    7u  IPv6   26994      0t0  TCP :22 (LISTEN)
The last line of the preceding example shows that the app sshd is listening on TCP port 22.
The following list shows the options in the preceding command example:
-i: Display files opened by network (Internet) connections.-n: Prevent networks from being changed to host names.-P: Prevent port numbers from being changed to port names for network files.
Using grep with the lsof command
grep with the lsof commandUse the lsof command with the grep command to refine a search to include only lines with the search criteria LISTEN.
`lsof -i -P -n | grep (criteria)`
Example output:
    [root@server-01 ~]# lsof -i -P -n | grep LISTEN
    sshd     1252   root    5u  IPv4   26992      0t0  TCP :22 (LISTEN)
    sshd     1252   root    7u  IPv6   26994      0t0  TCP :22 (LISTEN)
Specify a port in an lsof search
lsof searchLastly, you can specify a specific port to search for processes.
`lsof -i :(Port Number)`
    [root@server-01 ~]# lsof -i :22
    COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
    sshd     1252 root    5u  IPv4   26992      0t0  TCP :ssh (LISTEN)
    sshd     1252 root    7u  IPv6   26994      0t0  TCP :ssh (LISTEN)
Using the netstat command
netstat commandThe netstat (Network Statistics) command displays network connections, port usage, protocols, and other information.
General netstat command
netstat command`netstat -tulpn`
Example output:
    [root@server-01 ~]# netstat -tulpn
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1252/sshd
    tcp6       0      0 :::22                   :::*                    LISTEN      1252/sshd
    udp        0      0 127.0.0.1:323           0.0.0.0:*                           799/chronyd
    udp6       0      0 ::1:323                 :::*                                799/chronyd
The following list shows the options used in the preceding command example:
-l: Show listening sockets.-n: Prevent resolving service names.-p: Show process name list that have open sockets.-t: Show TCP sockets.-u: Show UPD sockets.
Using grep with the netstat command
grep with the netstat commandUse the netstat command with the grep command to refine a search to include only lines with the search criteria LISTEN.
`netstat -tulpn | grep (Criteria)`
    [root@server-01 ~]# netstat -tulpn | grep LISTEN
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1252/sshd
    tcp6       0      0 :::22                   :::*                    LISTEN      1252/sshd
Using the ss command
ss commandThe ss (Socket Statistics) command displays network socket related information. You can also use the ss command on newer systems instead because it now supersedes the netstat command.
General ss command
ss command`ss -tulwn`
Example output:
    [root@server-01 ~]# ss -tulwn
    Netid  State     Recv-Q    Send-Q        Local Address:Port       Peer Address:Port
    icmp6  UNCONN    0         0                         *:58                    *:*
    udp    UNCONN    0         0                 127.0.0.1:323             0.0.0.0:*
    udp    UNCONN    0         0                     [::1]:323                [::]:*
    tcp    LISTEN    0         128                 0.0.0.0:22              0.0.0.0:*
    tcp    LISTEN    0         128                    [::]:22                 [::]:*
The following list shows the options used in the preceding command example:
-lShow listening sockets.-nPrevent resolving service names.-tShow TCP sockets.-uShow UPD sockets.-wShow RAW sockets.
Using the nmap command
nmap commandThe nmap (Network Mapper) command performs port scanning and host discovery.
General nmap command
nmap command`nmap -sT -O localhost`
    [root@server-01 ~]# nmap -sT -O localhost
    Starting Nmap 7.70 ( https://nmap.org ) at 2020-06-10 22:49 UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00036s latency).
    Other addresses for localhost (not scanned): ::1
    Not shown: 999 closed ports
    PORT   STATE SERVICE
    22/tcp open  ssh
The following list shows the options used in the preceding command example:
-sT: TCP Connect Scan-O: Operating System Detection
Updated almost 2 years ago
