Linux如何检查远程服务器中端口是否打开?


这个非常简单 。telnet、nc和nmap这3个命令就可以轻松实现 。下面我简单介绍一下实现过程 。感兴趣的朋友可以自己尝试一下:
telnet
这是基于telnet协议实现的一个远程登录命令 。可以直接用于测试远程Linux服务器是否开启指定端口 。安装的话 。输入命令“yum install -y telnet”(或者“apt install -y telnet”)就行 。使用方式“telnet 服务器IP地址 端口号” 。如下 。这里以端口22为例 。如果返回结果为Connected 。则说明端口开启 。如果为refused 。则说明端口关闭:

Linux如何检查远程服务器中端口是否打开?

文章插图
nc
也即netcat 。一个简单实用的Unix(Linux)工具 。主要用来读写网络间连接的数据 。可以很方便的查看远程Linux服务器是否开启指定端口 。如下 。这里以3306端口为例 。如果返回结果为Connected 。则说明端口开启 。如果为timed out 。则说明端口关闭:
Linux如何检查远程服务器中端口是否打开?

文章插图
更多参数和说明的话 。可以使用命令“nc -h”进行查看 。官方文档解释的非常清楚详细 。如下:
Linux如何检查远程服务器中端口是否打开?

文章插图
nmap
这是一个专门用于网络嗅探的工具 。在渗透测试中经常会用到 。也可以很方便的查看远程Linux服务器是否开启指定端口 。安装的话 。输入命令“yum install -y nmap”(或者“apt install -y nmap”)就行 。如下 。这里以80 。21 。3306这3个端口为例 。如果返回结果为open 。则说明端口开启 。如果为filtered 。则说明端口关闭:
Linux如何检查远程服务器中端口是否打开?

文章插图
【Linux如何检查远程服务器中端口是否打开?】更多参数和功能的话 。可以使用帮助命令“nmap -h”进行查看 。官方文档解释的非常详细清楚 。一目了然 。如下:
Linux如何检查远程服务器中端口是否打开?

文章插图
至此 。我们就介绍完了使用telnet、nc和nmap这3个命令来查看远程Linux服务器是否开启指定端口 。总的来说 。这3种方式都非常简单 。只要你有一定的Linux基础 。熟悉一下相关参数和说明 。很快就能掌握的 。网上也有相关教程和资料 。介绍的非常详细 。感兴趣的话 。可以搜一下 。希望以上分享的内容能对你有所帮助吧 。也欢迎大家评论、留言进行补充 。
其他观点:
方法一 。telnet host port
方法二 。nc -t host port其中-t代表tcp 。-u是udp
方法三 。任意语言 。优先python 。写一段 socket程序 。调用connect函数看看是否成功
其他观点:
Linux中使用Netstat查看端口
Linux 和windos服务器上的命令其实有点类似 。你的这个问题其实也很简单使用netstat这个命令查看当前的服务器中那些端口被打开 。
netstat命令用法:使用man netstat查看命令帮助
Linux如何检查远程服务器中端口是否打开?

文章插图
netstat用途: 用于显示linux中各种网络相关信息 。如网络链接 路由表接口状态链接 多播成员等等 。
netstat 参数含义:
-a (all)显示所有选项 。默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名 。能显示数字的全部转化成数字 。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息
-e 显示扩展信息
-s 按各个协议进行统计
-c 每隔一个固定时间
举例:
查询服务器是否看是否监听80端口(web服务)
Linux如何检查远程服务器中端口是否打开?

文章插图
2.查询服务器是否开启MySQL服务(一般是3306)
Linux如何检查远程服务器中端口是否打开?

文章插图
如果你根本不知道你的服务器上开放什么端口 。你可以使用如下命令:
Linux如何检查远程服务器中端口是否打开?

文章插图
以上只是做了一个简单参考 。具体的情况你可以使用 man netstat来看参数具体对待需求 。

    推荐阅读