判断远程端口port是否打开

Linux检测远程服务器端口的几种方法

 sharplee 大乐学IT 2022-05-03 23:46 发表于北京

图片

作为系统管理员、网络工程师或应用程序开发人员,需要检查远程服务器上的端口是否打开,以便您可以判断所检查的服务是否正在运行。比如远程服务器上运行一个web应用,想要检测这个服务是否正常运行,可以检测一下这个服务的端口80或者443等端口是否打开。再比如远程服务器开通了ssh以及ftp等服务,有些时候通过ssh连接远程服务器,这个时候连接不了,就可以通过以下方法来检查服务端口是否打开。下面就来看一下如何检测远程服务器的端口的方式。

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相关的事情,包括数据包传输,端口扫描等。要检查端口是否打开,果执行命令提示未发现,执行“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系统都可以使用,不需要安装任何软件。

大乐学IT
资料分享,知识分享,资源共享,大家需要啥资源可以回复,小主为大家寻找。构建一个资源共享公众号
90篇原创内容

 

sharplee

你的赞助是我的动力

收录于合集 #linux
 66
上一篇Linux如何查看网卡驱动以及版本号下一篇Linux关闭ping的几种方式
阅读 643
大乐学IT
90篇原创内容
 
写下你的留言
精选留言
  • ss lsof命令也可以
     
     
已无更多数据
 

Linux如何查看网卡驱动以及版本号

 sharplee 大乐学IT 2022-05-04 22:42 发表于北京

图片

Linux安装成功之后,想要知道Linux的NIC硬件安装了哪个网络适配器驱动程序。有没有办法找出具体网卡的网卡驱动程序的名称和版本呢?通常情况下要使网络接口卡 (NIC) 硬件正常运行,必须给该电脑的NIC硬件的设备安装对应的网卡驱动程序(例如,用于 Intel的网卡驱动程序)。NIC设备驱动程序在Linux内核和NIC之间实现了一个独立于硬件的通用接口,从而可以在内核和NIC之间移动数据包。虽然某些驱动程序可能静态构建在内核中,但现代 NIC 的大多数驱动程序都是作为内核模块动态加载的。当需要对NIC硬件问题进行故障排除时,那么首先可以做的一件事是检查是否正确安装了正确的网络适配器驱动程序。在这种情况下,就需要知道哪个内核模块是Linux系统的NIC驱动程序。

1,dmesg命令查看

由于内核在引导期间会加载必要的硬件驱动程序,因此dmesg输出中会存在是否安装了以太网卡驱动程序的内容,接着可以通过该命令来过滤出具体的以太网驱动程序的名字。

[root@localhost ~]# dmesg | grep NIC

图片

通过上图可以看出,通过dmesg启动程序日志可以看到网卡对应的驱动名称是e1000,网卡名是ens33。接下来如果要查询版本号可以根据以下命令来查询网卡驱动的版本号。

[root@localhost ~]# modinfo e1000

图片

从上图中可以看出网卡驱动的版本号7.3.21以及网卡驱动是intel的。

2,ethtool查看

通过ethtool命令来查看网卡名对应的网卡驱动名以及网卡驱动版本号,通过以下命令来查询,注意命令后面跟的是网卡名称,比如ens33就是网卡名称。

[root@localhost ~]# ethtool -i ens33

图片

通过上图可以看出查询处理的网卡驱动名称以及网卡驱动的版本号。 

3,lshw命令查看

另外一个有效的网卡驱动信息查询命令是lshw,通过lshw可以查询到网卡对应的网卡驱动信息以及网卡驱动版本号,执行以下命令即可查看。

[root@localhost ~]# sudo lshw -class network

图片

可以看出也能够查询到网卡驱动名是e1000,驱动版本号是7.3.21。

总结:本文主要讲解了三种方式查询Linux中的网卡驱动名称以及网卡驱动版本号,对于排查网卡驱动问题是非常有用的。

大乐学IT
资料分享,知识分享,资源共享,大家需要啥资源可以回复,小主为大家寻找。构建一个资源共享公众号
90篇原创内容

 

sharplee

你的赞助是我的动力

收录于合集 #linux
 66
上一篇Linux计算文件总行数的几种方式下一篇Linux检测远程服务器端口的几种方法
阅读 565
大乐学IT
90篇原创内容
 
写下你的留言
 
 
 
posted @ 2022-10-07 21:35  往事已成昨天  阅读(715)  评论(0编辑  收藏  举报