使用此脚本,我检查主机是否使用bash 的内置 /dev/tcp 在给定端口上响应。
我可以使用 IP 地址或域(主机名)。
脚本 1
#!/bin/bash
HOST_NAME="127.1"
HOST_PORT="80"
if ( (exec 3<>/dev/tcp/${HOST_NAME}/${HOST_PORT}) 2> /dev/null); then
echo -e "PORT: ${HOST_PORT} | ON"
else
echo -e "PORT: ${HOST_PORT} | OFF"
fi
exit;
脚本 2
#!/bin/bash
HOST_NAME="127.1"
for HOST_PORT in {1..1000}
do
if ( (exec 3<>/dev/tcp/${HOST_NAME}/${HOST_PORT}) 2> /dev/null); then
echo -e "PORT: ${HOST_PORT} | ON"
else
echo -e "PORT: ${HOST_PORT} | OFF"
fi
done
exit;
脚本 3
#!/bin/bash
HOST_NAME="127.1"
declare -A PORT_ON
for HOST_PORT in {1..65535}
do
if ( (exec 3<>/dev/tcp/${HOST_NAME}/${HOST_PORT}) 2> /dev/null); then
PORT_ON[${HOST_PORT}]="ON"
fi
done
for i in ${!PORT_ON[*]}
do
echo -e "$i : ${PORT_ON[$i]}"
done
exit;
在我们的一些本地和在线域上, Script 3挂在一些端口上,并且需要更长的时间才能跳转到下一个端口扫描,例如在 ssh 上(因为防火墙或其他服务)。当我扫描所有 65535 端口时,我该如何管理它,它会立即继续并且可以加快脚本速度,这需要很长时间。
我的 GNU/Linux 发行版:
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
4.19.0-16-amd64
我的 /etc/apt/sources.list
deb http://security.debian.org/debian-security buster/updates main contrib
deb-src http://security.debian.org/debian-security buster/updates main contrib
deb http://deb.debian.org/debian/ buster-updates main contrib
deb-src http://deb.debian.org/debian/ buster-updates main contrib
我只能从这个 repos 安装。
bash 脚本,使用 bash 的内置 /dev/tcp 检查端口响应,时间延迟 | 挂起| 加速
我怎样才能加快和终止时间延迟?
用超时运行这个我放了一个计时器变量来检查运行时间如果这个脚本以 0.001 执行,你似乎不能将脚本加速超过 0.01,你只会看到计时器变量的结果,但没有其他结果即使使用1、0.1 或 0.01 你总是会得到相同的结果我用 ubuntu 22.04 测试了这个脚本并将端口设置为 10000