A ping is a tool and command used to troubleshoot network and system-related problems. The ping command normally uses the ICMP protocol and make checks if the remote system is up or down without a TCP or UDP. The ping port is a term used to check a remote port which can be TCP or UDP if it is open and accessible. There are different tools that can be used to ping a TCP or UDP port. Telnet, nmap, putty, netcat,psping are some of them.
Why Ping A Specific Port?
Pinging a specific port is used by different users and administrators to check remote service. A Linux Administrator, Windows Administrator, Network Administrator, Application Developer, Database Administrator generally ping specific ports to identify and solve problems. Below we will list some of the most popular reasons why ping a specific port.
- The application can not connect database service.
- If the firewall has configured properly to allow or deny specific ports.
- Check if the remote SNMP service is running properly.
- Before attacking the remote port if the port is up and responding properly.
Ping Specific Port with telnet Command
The most popular and basic tool to ping a remote port is the telnet command. Telnet is a tool and protocol created to connect remote systems via the command line. Telnet work from the command line and provides simple access to the remote telnet server. Telnet command uses the TCP protocol and first tries to connect remote port which is very useful to check remote port.
By default, telnet is not installed for both Linux and Windows systems. In Linux systems like Ubuntu, Debian, Mint, Kali you can install the telnet command like below.
$ sudo apt install telnet
For Windows operating system the telnet client is provided via the Windows Features but not enabled by default. So you should turn on the telnet client feature. Take a look at the following tutorial about how to install a telnet client in Windows operating systems.
Alternatively, you can use 3rd party tools like Putty for telnet command but it is not practical as expected. Syntax of the telnet command to ping the remote port is like below. The telnet command only uses the TCP protocol which is the most popular transmission protocol. So only TCP ports can be pinged with the telnet command which can not be used for the UDP ports.
telnet IP PORT telnet DOMAIN PORT
- IP or DOMAIN is used to specify the remote system.
- PORT is the remote system port number which is a number from 9 to 65000.
Let’s ping the remote HTTP port with the telnet command by providing the port number as 80. We will ping the google.com TCP port number 80 like below.
$ telnet google.com 80
The output will be like below where the telnet will try to connect remote system port number 80 and when the connection is established e will see the message “Connected to google.com.”
Trying 184.108.40.206... Connected to google.com. Escape character is '^]'. get / HTTP/1.0 400 Bad Request Content-Type: text/html; charset=UTF-8 Referrer-Policy: no-referrer Content-Length: 1555 Date: Thu, 12 Nov 2020 01:57:34 GMT <!DOCTYPE html> <html lang=en> <meta charset=utf-8> ...
Alternatively, we can try to ping a remote port with the IP address. We will just change the domain name with the IP address below.
$ telnet 220.127.116.11 80
We have made a ping port example with a successful result but what will be the output if the ping port does not work. In the following example, we will ping port number 89 which is closed and will not reply to the ping request.
$ telnet google.com 89 Trying 18.104.22.168... Trying 2a00:1450:4001:809::200e... telnet: Unable to connect to remote host: Network is unreachable
The output will be like below where the “Trying 22.214.171.124…” line will be shown for timeout and then the “telnet: Unable to connect to remote host: Network is unreachable” message will be displayed.
Ping Specific Port with nc (netcat) Command
The nc or with its well-known name netcat is a tool used by security professionals for remote connectivity and management. Similar to the telnet command nc command can be used to ping specific port numbers for a remote system.
The nc command is provided by the Linux distributions like Ubuntu, Debian, Mint, Kali and can be installed like below.
$ sudo apt install netcat
For Windows operating systems the nc command and executable can be downloaded from alternative locations where one of them is https://github.com/diegocr/netcat .
The syntax of the nc command is very similar to the telnet command. But the difference is -v and -z parameters should be specified. The -v parameter is used for verbose output in order to see the log or status information like connected or not connected. The -z parameter is used for scan mode which will check or scan the specified remote port.
nc -vz DOMAIN PORT nc -vz IP PORT
- The DOMAIN is the remote system domain name.
- The IP is the remote system IP address.
- The PORT is the remote system port number we want to ping.
Let’s make a ping to the HTTP port of google.com with the following nc command.
$ nc -vz goole.com 80 Connection to goole.com 80 port [tcp/http] succeeded!
We can see that the connection is succeeded which means the remote port number 80 responds to ping requests. We can also use the IP address for the remote system.
$ nc -vz 126.96.36.199 80
In the following example, we will ping the google.com domain name pot number 89.
$ nc -vz goole.com 89 nc: connect to goole.com port 89 (tcp) failed: Connection refused
As we can see from the result we will get the “Connection refused” message which means the remote port does not respond to ping.
Ping Specific Port with nmap
The nmap is a security tool used to scan remote systems ports and services. The nmap can be also used to ping a specific port. Nmap can be installed for the Linux distributions like Ubuntu, Debian, Mint, Kali like below.
$ sudo apt install nmap
For Windows operating systems use the official nmap site Windows download section like below.
The syntax of the nmap command for the port ping is like below.
nmap -p PORT_RANGE TARGET
- PORT_RANGE is the remote port number or protocol name. The PORT_RANGE can be also a range of port numbers too.
- TARGET is a domain name or IP address. Also the target can be an IP range too which includes multiple sequencial IP addresses.
Let’s make an example with the nmap to ping remote port. We will provide the port number with the -p parameter which will be 80 and the remote system is google.com.
$ nmap -p 80 google.com
The nmap is the fastest tool to ping a specified remote port. The command will be executed in 2 seconds and detailed output about the remote port will be provided like below. The line “80/tcp open http” simply expresses that the remote port number 80 responds to pings.
Starting Nmap 7.80 ( https://nmap.org ) at 2020-11-11 18:27 PST Nmap scan report for google.com (188.8.131.52) Host is up (0.036s latency). Other addresses for google.com (not scanned): 2a00:1450:4001:809::200e rDNS record for 184.108.40.206: zrh04s05-in-f110.1e100.net PORT STATE SERVICE 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.28 seconds
Alternatively, we can specify the IP address of the remote system we want to ping port.
$ nmap -p 80 220.127.116.11
As stated previously the nmap command can ping multiple ports and IP addresses with a single command. Other tools like nc, telnet can not ping multiple ports with a single command. In the following example, we will ping port numbers between 80 and 90.
$ nmap -p 80-90 google.com
The output will be like below where the open ports will be listed with the STATE open.
Starting Nmap 7.80 ( https://nmap.org ) at 2020-11-11 18:32 PST Nmap scan report for google.com (18.104.22.168) Host is up (0.039s latency). Other addresses for google.com (not scanned): 2a00:1450:4001:809::200e rDNS record for 22.214.171.124: fra16s42-in-f14.1e100.net PORT STATE SERVICE 80/tcp open http 81/tcp filtered hosts2-ns 82/tcp filtered xfer 83/tcp filtered mit-ml-dev 84/tcp filtered ctf 85/tcp filtered mit-ml-dev 86/tcp filtered mfcobol 87/tcp filtered priv-term-l 88/tcp filtered kerberos-sec 89/tcp filtered su-mit-tg 90/tcp filtered dnsix
Ping Specific Port with Test-Connection In PowerShell
The Windows operating system provides the strong command-line interface named PowerShell with its recent versions. PowerShell provides a lot of useful commands like Test-NetConnection . The Test-NetConnection can be used to ping specified remote ports easily and provides detailed information. The Test-NetConnection is the preferred tool over the telnet command for Windows systems. The Test-NetConnection command is by default with PowerShell and Windows so there is no need for an extra installation process.
The syntax of the Test-NetConnection command is like below.
Test-NetConnection TARGET -p PORT
- TARGET is an IP address or domain name to port ping.
- PORT is the remote system port number.
We will use the Test-NetConnection command to test google.com port number 80.
PS> Test-NetConnection google.com -p 80
The output of the ping remote port with the Test-NetConnection command will be like below. We can see that remote system ComputerName, RemoteAddress, RemotePort, InterfaceAlias, SourceAddress, TcpTectSucceeded information is provided.
ComputerName : google.com RemoteAddress : 126.96.36.199 RemotePort : 80 InterfaceAlias : Ethernet0 SourceAddress : 192.168.142.130 TcpTestSucceeded : True
Let’s make another test for port number 89 for google.com.
PS> Test-NetConnection google.com -p 80
The output is like below which means the ping port is failed. For failed ping port operations extra information like PingRelyDetails (RTT), TcpTestSucceeded is provided.
WARNING: TCP connect to (188.8.131.52 : 89) failed ComputerName : google.com RemoteAddress : 184.108.40.206 RemotePort : 89 InterfaceAlias : Ethernet0 SourceAddress : 192.168.142.130 PingSucceeded : True PingReplyDetails (RTT) : 46 ms TcpTestSucceeded : False
Ping Port with PaPing Tool
The PaPing tool is a 3rd party tool created to ping remote specified port. The PaPing project is open source and located in Google Code.
paping.exe is used to ping remote port. The port number is proıvided with the
-p option and the number of the ping packets are sent with the
-c command. In the following example, we ping the
wisetut.com port number 80 for 5 times.
> paping.exe wisetut.com -p 80 -c 5
Ping Port with curl Command
The curl command is created to download remote resources over the network by using the FTP, HTTP, HTTPS, and similar protocols. It can be also used to make a simple port checks which can be also called a ping port. The following syntax is used to ping port for the specified IP address or hostname.
In the following example, we ping the remote system with IP address 192.168.136.136 for port number 80.
$ curl 192.168.136.136:80
If the remote port is open some response like a warning, error, etc is returned by the remote port service.
Ping Port with psping Command
Windows Sysinternals is used to debug, troubleshoot the Windows operating system. The
psping is a Windows Sysinternals tool that can be used to ping a port. The syntax of the psping tool is like below.
> psping 192.168.136.136:80