首页 > 解决方案 > 使用 netcat 命令无法正确检查打开的端口

问题描述

我创建了一个 shell 脚本来检查多个服务器上的开放端口。我也使用了 netcat 命令。但是在执行后,即使端口在特定服务器上打开,也会显示错误的输出。例子。我试过 8880,84443 端口,在服务器上的端口是打开的,但我的脚本显示错误的输出。我的代码:对于服务器在more input.txt do nc -zvw3 $server $port >> output.txt 2>&1 done

标签: linuxbash

解决方案


!/bin/sh echo "" echo "" rm -rf output.txt rm -rf final.txt

echo "$(tput setaf 5)*** 端口检查脚本 *****" echo "" echo ""

echo "$(tput setaf 2)输入要检查的端口号:$(tput setaf 7)" 读取端口

回声“”回声“”

echo "$(tput setaf 2)脚本正在运行...等待一段时间..." echo ""

睡觉 2

对于服务器在more input.txt do nc -zvw3 $server $port >> output.txt 2>&1 done

grep -i 连接的 output.txt >> final.txt

echo "$(tput setaf 2)You have Entered Port : "$port echo "" echo "$(tput setaf 2)On belowServers Entered Port is Open "

睡觉 1

echo "$(tput setaf 3)" echo "" cat final.txt echo "" echo "$(tput setaf 5)*** 谢谢...! *****" #sed 's/connected to/ /g' output.txt >> final.txt echo "$(tput setaf 7)"

以上是完整的代码。请协助。对于端口 8880 ,即使这些端口在服务器上打开,8443 脚本也会显示错误的输出。


推荐阅读