如何从Linux或者Unix命令行ping和测试特定端口

时间:2020-01-09 10:43:01  来源:igfitidea点击:

如何查看是否从Linux或者Unix命令行shell打开了台式计算机或者服务器的特定端口。
如何ping特定端口?
是否可以ping 192.168.1.254:80或者192.168.1.254:23端口?
您可以使用ping命令将ICMP ECHO_REQUEST数据包发送到网络计算机,路由器,交换机等。

ping适用于IPv4和IPv6。

Ping正在使用ICMP协议。

ping命令不能用于ping特定端口。

但是,请使用以下任一命令来查看端口是否打开,如下所示:

使用telnet命令的Linux Ping端口

语法为:

telnet {host} {port}
telnet www.theitroad.local 80
telnet 192.168.1.254 80

输出示例:

Trying 192.168.1.254...
Connected to router.
Escape character is '^]'.
^]
telnet> q
Connection closed.

要关闭会话,请按Ctrl ++] + q。

使用nc命令

语法为:

nc -vz {host} {port}
nc -vz 192.168.1.254 80
nc -vz www.theitroad.local 443

输出示例:

found 0 associations
found 1 connections:
     1:	flags=82
	outif utun1
	src 10.8.0.2 port 54997
	dst 104.20.187.5 port 443
	rank info not available
	TCP aux info available

Connection to www.theitroad.local port 443 [tcp/https] succeeded!

使用nmap命令的Unix ping端口

语法为:

nmap -PNp {port} {host}
nmap -p {port} {host}
nmap -p 22 www.theitroad.local
nmap -p 443 192.168.1.254

输出示例:

Starting Nmap 7.40 ( https://nmap.org ) at 2016-05-24 01:00 IST
Nmap scan report for router (192.168.1.254)
Host is up (0.00034s latency).
PORT    STATE SERVICE
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

有关更多信息,请参见系统/网络管理员的前32个Nmap命令示例。

使用bashshell

语法如下:

## check for tcp port ##
## need bash shell ##
(echo >/dev/tcp/{host}/{port}) &>/dev/null && echo "open" || echo "close"
(echo >/dev/udp/{host}/{port}) &>/dev/null && echo "open" || echo "close"
(echo >/dev/tcp/www.theitroad.local/22) &>/dev/null && echo "Open 22" || echo "Close 22"
(echo >/dev/tcp/www.theitroad.local/443) &>/dev/null && echo "Open 443" || echo "Close 443"

输出示例:

Close 22
Open 443

使用nping命令

Nping是用于网络数据包生成,响应分析和响应时间测量的开源工具。

Nping允许用户生成各种协议的网络数据包,从而使他们可以通过虚拟方式调整协议头的任何字段。

Nping可以用作检测活动主机的简单ping实用程序,但也可以用作原始数据包生成器。
语法为:

sudo nping --tcp -p {port} {host}
sudo nping --tcp -p 443 www.theitroad.local