1,telnet命令检测
telnet是Windows和Linux上最常用的检查端口的命令。此命令的简单用法是telnet ip地址(或者域名) 端口。如果执行telnet 命令提示命令未发现,请执行"yum install telnet"。
[root@localhost etc]# telnet www.baidu.com 443
通过上图可以看出,百度https服务是打开着的,所以能够访问百度首页。如果远程服务器上的端口未打开。会提示以下报错。
从上图可以看出百度服务器上的3389未打开的。
2,nc命令检测
nc或netcat是一个实用程序,可以做很多TCP和UDP相关的事情,包括数据包传输,端口扫描等。要检查端口是否打开,如果执行nc提示命令未发现,执行"yum install nc"安装。接着可以通过执行以下命令"nc -vz IP地址或域名 端口"检测。
[root@localhost ~]# nc -vz www.baidu.com 443
如果远程服务器的端口未打开,或者服务器未启用,则会提示一个连接超时的错误,报错如下。
从上图中可以看出,检测服务器的3389端口显示连接超时,说明未开启服务。
3,nmap命令检测
nmap是一个用于网络扫描的开源实用程序。它不仅可以用于扫描打开的端口,还可以执行更多操作。 它可用于一次检查多个主机和端口。 该命令需要通过执行“yum install nmap”安装。
[root@localhost ~]# nmap www.baidu.com
从上图上可以看出远程服务器有俩端口是打开的。
4,执行/dev/tcp检测
Linux中所有内容都是文件,并且主机和端口的状态也可通过文件处理程序获得。如果没有上面几种可用的telnet或 nc(在 docker 容器中经常看到没有这些命令),则可以使用此方法检查远程端口是否打开。
语法格式为:
echo > /dev/tcp/[host]/[port] && echo "Port is open"
echo > /dev/udp/[host]/[port] && echo "Port is open"
上面的命令取决于远程服务是使用的哪种协议,是tcp还是udp协议,比如ssh是tcp协议,smtp使用的udp协议。具体可以使用对应的协议进行连接。命令使用方式如下。
[root@localhost ~]# echo > /dev/tcp/www.baidu.com/443 && echo "Port is open"
[root@localhost ~]# echo > /dev/tcp/www.baidu.com/3389 && echo "Port is open"
从上面的图上可以看出远程服务器端口是开着的会打印出“Port is open” ,如果没有打开的话会提示“Connection refused”。
总结:本文主要讲解了四种方式来检测远程服务器的服务或者端口是否正常启动或者打开,对于telent在window和Linux中都可以使用,然而nc和nmap是Linux服务器带的,需要安装对应的软件包才能使用,对于最后一种方式,对任何Linux系统都可以使用,不需要安装任何软件。 标签:服务器端,nc,端口,telnet,echo,命令,Linux,远程 From: https://www.cnblogs.com/wjsqqj/p/17749600.html