如何判断对端电脑8080端口是否打开?

一排糖_gvw


回答行业问题

测试电脑端口是否开的命令有很多,比如: telnet、nmap、ssh、wget、curl、socket连接,这些都属于TCP网络连接。

作者“小小猿爱嘻嘻”已经介绍了telnet、nmap、socket程序测试端口的方法,写的十分详细,这里我就不再介绍了。接下来我补充介绍下wget、curl、ssh工具用做端口测试时的方法。

TCP 8080端口多用于http服务,既然是测试http服务,那我想一定是做定时检查http服务是否存活,这个可以通过脚本来测试,十分方便,下面我简单写了个脚本,说明下wget和curl工具端口检测方法,在shell脚本中怎么使用,内容如下:


wget、curl检测8080是否开启

wget是linux系统下文件下载工具,现在已经移植到windos平台上。对于Linux用户来说是必须要掌握的命令,经常要从网上下载一些工具或者软件。同时支持HTTP、HTTPS和FTP协议,可以使用代http代理,下面是wget定义的wget_test函数。

weget_test () {

wget -q -O /dev/null $1:$2

[ $? -eq 0 ] && echo "wget_test: $1 $2 open" || {

echo "wget_test: $1 $2 closed"

}

}

curl也是linux系统下的命令行工具,它可以指定URL来进行下载和上传数据,有了这功能我们就可以,比如模拟POST请求发送JSON或者XML的数据,来进行一些HTTP接口测试,curl同样也已经被移植到windos平台上,下面是curl定义的curl_test函数。

curl_test () {

curl -s -o /dev/null $1:$2

[ $? -eq 0 ] && echo "curl_test: $1 $2 open" || {

echo "curl_test: $1 $2 closed"

}

}

这里只做Linux系统shell脚本演示,windos平台脚本可自行学习。这个脚本主要包含了两个自定义函数,分别是curl_test和wget_test,它们分别包含了wget和curl工具通过HTTP请求,测试服务器端口是否存活。同时定义了多个端口,使用while和for配合循环输出,来对比观察在成功和失败时的输出结果。

while :;do

for i in $port;do

curl_test ${host} $i

weget_test ${host} $i

echo '-------------------------'

sleep 1

done

done

这个shell脚本也可以进行扩展,比如监控web服务宕机发送邮件,或者直接在服务器上运行,当做“看门狗”使用,我们来看下执行结果。

服务器只开启了8080端口,80、9001端口并未开启,输出提示808端口开启、80/9001端口关闭,到这里就可以修改脚本进行服务器监测了。

  • wget使用参数说明

我们只是检测端口不需要任何输出

  • -q 静默访问,禁止输出
  • -O 将保存的文件输出到/dev/null空
  • curl使用参数说明

curl的参数和wget同理。

  • -s 静默模式访问,不输出
  • -o 这里是小写o,指定输出路径到/dev/null空

当然这两个命令还有很多参数,这里只用两个参数,有兴趣的可以自行了解下,学会这两个命令,对工作帮助很大的。

SSH工具连接测试端口是否存活

ssh是目前比较可靠,专为远程会话连接和其他网络服务提供的安全性协议,ssh是linux上的一个程序,它提供了ssh server端和ssh client,我们可以利用它远程连接的特性,来进行端口检测,命令如下:

[root@api port]#ssh 127.0.0.1 -p 8080 -v
  • -p 指定端口

  • -v 开启详细模式,输出调试信息

我们在测试下没有的端口,从日志可以看出Connection refused直接就给拒绝了。

[root@api port]#ssh 127.0.0.1 -p 80 -v

总结,端口存活测试的方法有很多,关键是需要选对最合适测试场景的方法,wget和curl就一个不错的选择,建议好好学习一下。

以上回答希望能够帮助到你,喜欢我的回答点个赞再走,欢迎大家评论留言。


IT大叔Cc


这里介绍3种判断对端电脑是否开启8080端口的方法,分别是telnet,nmap和socket编程,感兴趣的朋友可以尝试一下:

01

telnet

这是最简单的判断对端电脑是否开启8080端口的方法,适用于Windows和Linux,只不过首先都需要安装telnet客户端,接着输入对端电脑IP和8080端口,如果返回状态为拒绝连接“Connection refused”,则说明8080端口未开启,否则开启,更多功能和参数,可参考帮助命令“man telnet”,官方文档介绍的非常详细:

02

nmap

这是Linux环境下一个非常著名的网络扫描和嗅探工具,可快速扫描对端电脑(主机)是否在线,以及对应端口是否开启,功能强大,操作简单,在黑客渗透测试中经常会用到,对于日常使用来说,也是一个非常不错的工具,推荐使用,如下,如果STATE返回状态为open,则说明端口开启,closed则为关闭:

03

socket编程

这种方式主要基于socket编程来实现,创建一个socket套接字,尝试去连接对端电脑对应端口,如果超时或返回错误,则说明端口未开启,否则端口开启,测试代码如下,以Python为例,非常简单,当然,你也可以使用其他编程语言,效果类似:

至此,我们就介绍完了3种判断对端电脑是否开启8080端口的方法。总的来说,这3种方法都非常简单,telnet最基础,nmap功能强大,socket编程需要一定基础,网上也有相关资料和教程,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。


小小猿爱嘻嘻


1.可以通过netstat —na命令查看,如下图所示:


2.

可以通过telnet命令,如下图所示:

如果打开的话会自动跳转到一个空白页


ksfzhaohui


第一步:先判断网络是否接通,输入dos命令:ping 目标主机IP地址

第二步:判断是否可以连接到端口:telnet 目标主机IP地址 端口号


梁溪旧巷


netstat -ano | findstr "端口"

如果显示有说明被占用可以用taskk 强制关闭


分享到:


相關文章: