如何测试服务器是否可以运行 (测试服务器端口是否能通的指令)

思路

linux系统中,通过nc命令机制访问,nc命令会尝试与服务器目标端口建立tcp连接,通过建链是否成功来判断端口当前是否可用,循环访问固定端口,并设置不同的超时时间,统计最后结果来判断服务器及端口的稳定性。

操作步骤

一.测试域名(指定端口号)的稳定性

如测试百度:主要用到这行代码

nc -v -z www.baidu.com 80 

如何测试一个服务器的访问速度,服务器查看端口速率命令

建链成功返回:

如何测试一个服务器的访问速度,服务器查看端口速率命令

建链失败返回:

如何测试一个服务器的访问速度,服务器查看端口速率命令

二.新建一个文件config,把待测试域名或IP 端口写在config文件里面,也可以同时测试多个

如何测试一个服务器的访问速度,服务器查看端口速率命令

三.新建一个Shell脚本

如何测试一个服务器的访问速度,服务器查看端口速率命令

 #!/bin/bash
rm -rf ./result.txt
rm -rf ./2.txt
rm -rf ./nc.log
 
for((i=0;i<$1;i++)) #变量$1为循环扫描的次数
do
cat ./config | while read line #config 为需要测试的域名或者IP地址 端口号
 
do
 nc -v -w $2 -z $line >> ./nc.log 2>&1 #执行命令并把结果重定向到nc.log中
 
 if [ $? -eq 0 ]
 then
 echo $line:ok >> ./2.txt
 else
 echo $line:failed >> ./2.txt
 fi
done
 
echo `date +%Y`"-"`date +%m`"-"`date +%d`" "`date +%H`":"`date +%M`":"`date +%S` >> nc.log #在日志中加入时间戳,方便定位问题
sleep $3 #每次去扫描的时间间隔
done
 
 echo "demowss.happy968.com 30050:ok $(grep "demowss.happy968.com 30050:ok" 2.txt | wc -l)" >>result.txt #统计扫描成功次数
 echo "demowss.happy968.com 30050:failed $(grep "demowss.happy968.com 30050:failed" 2.txt | wc -l)" >>result.txt #统计扫描失败次数

执行脚本./nc.sh 10000 1 2 (shell脚本执行时后面的参数都可设置)

四.全量日志,重定向到nc.log中

如何测试一个服务器的访问速度,服务器查看端口速率命令

五.最后统计结果result.txt

如何测试一个服务器的访问速度,服务器查看端口速率命令

六.最后测试数据:设置了三组数据

如何测试一个服务器的访问速度,服务器查看端口速率命令

总结:

在linux环境中,通过nc命令去循环扫描端口可以快速,准确的对服务器及端口做稳定性测试,在shell脚本里设置了变量,在脚本执行的时候带上参数,让shell脚本更灵活。

如何测试一个服务器的访问速度,服务器查看端口速率命令