A port is a logical entity which acts as an endpoint of communication associated with an application or process on a Linux operating system. It is useful to know which ports are open and running services on a target machine before using them.
netcat (or nc in short) is a powerful and easy-to-use utility that can be employed for just about anything in Linux in relation to TCP, UDP, or UNIX-domain sockets.
We can use it to: open TCP connections, listen on arbitrary TCP and UDP ports, send UDP packets, do port scanning under both IPv4 and IPv6 and beyond.
Using netcat, you can check if a single or multiple or a range of open ports as follows. The command below will help us see if the port 22 is open on the host 18.104.22.168:
$ nc -zv 22.214.171.124 22
In the command above, the flag:
-z– sets nc to simply scan for listening daemons, without actually sending any data to them.
-v– enables verbose mode.
The next command will check if ports 80, 22 and 21 are open on the remote host 192.168.5.10 (we can use the hostname as well):
nc -zv 126.96.36.199 80 22 21
It is also possible to specify a range of ports to be scanned:’
$ nc -zv 188.8.131.52 20-80