How to Ping Specific Port Number on Remote Host

In general to troubleshoot network connectivity ping command is used, where ping command uses the ICMP protocol behind the scenes. ICMP stands for Internet Control Message Protocol, it is used as complimentary protocol along with IP to send back error message or information about IP communication whether it is successful or not. When it comes to checking particular port is open or not ping command doesn’t work, since ICMP protocol works in network layer and port numbers are associated with TCP or UDP protocols of transport layer

To check whether particular port is open or not, there are other utilities such as

  • Telnet
  • Netcat(nc)
  • Network Mapper (nmap)

Ping a Specific Port Using Telnet

Telnet stands for Teletype network. It is the type of protocol also a tool, which is used as standard TCP/IP protocol virtual terminal service to connect to the remote computer using local computer. Telnet operates based on client/server architecture. Where, local computer uses the Telnet client program while remote computer uses the Telnet serve program. Telnet uses the TCP protocol and port number 23. Telnet can also used as generic client to connect with remote computer with any port if particular port is open and send/receive data according to protocol of connected port.

To ping the specific port or check if specific port on remote host is open. Connect to the remote host on specific port using telnet as follows

telnet <remote host address> <port number> 

Example:

telnet google.com 80 

If port is open, telnet will be able to connect and you will see the prompt something like

$ telnet google.com 80
Trying 2404:6800:4009:82e::200e...
Connected to google.com.
Escape character is '^]'.

If port is not open, telnet will not be able to connect. And, you can see Telnet is stuck with Trying message

$ telnet google.com 89
Trying 2404:6800:4009:82e::200e...
telnet: connect to address 2404:6800:4009:82e::200e: Operation timed out
Trying 142.250.199.174...

..

To quit from telnet, press the key combination CTRL + ] and then q command

Ping a Specific Port Using Netcat

Netcat (nc) is the tool that is designed to read and write data into network connections that use TCP or UDP Transport protocols using IP protocol suite. You can use Netcat as either client or server.

Install netcat on Debian machines as follows

sudo apt install netcat

To ping or connect to the specific port on remote host use the follow command

nc -vz <remote host address>  <port number> 

Where,

-z      Specifies that nc should just scan for listening daemons, without sending any data to them.  It is an error to use this option in conjunction with the -l option.
-v      Have nc give more verbose output.

Example:

nc -vz  google.com 80 

or

netcat -vz google.com 80 

Note that: on some machine netcat command is also available as nc

Here is the case, where port number 80 is open for http

$ nc -vz google.com 80
Connection to google.com port 80 [tcp/http] succeeded!

If specified port is not open, netcat will result in timeout

$ nc -vz google.com 89
nc: connectx to google.com port 89 (tcp) failed: Operation timed out

Ping a Specific Port Using nmap

nmap is a great networking tool which is used for network discovery, vulnerability scanning where it can also be used to ping specific port number on remote host.

Install nmap on Debian based system

apt install nmap 

Command to ping specific port

nmap -p <port number <remote host address> 

Example:

nmap -p google.com 80 

To ping range or ports

nmap -p 80-180 google.com

Nmap is very powerful tool, using nmap you can also ping specific port across the block or network of computers by specifying CIDR block

nmap -p 80 192.168.4.1/24 

Ping a Specific Port using Test-NetConnection on Windows Using PowerShell

To ping a specific port on windows platform using PowerShell, Test-NetConnection command is pretty helpful

Test-NetConnection <remote_host_address> -p <port_number> 

Example:

Test-NetConnection  google.com. -p 80 




Default image
neotam
Naveen T aka neotam. Programming language agnostic, Software architect, Python expert, Networking & DevOps engineer & consultant with 7+ years of experience in creating serious web applications, real time event-driven non blocking applications and database driven applications ranging from small scale to enterprise grade. website
Leave a Reply