试图连接到远程主机的特定端口。可以到达主机(通过ping命令检查),但无法访问端口。
是否有任何方法检查来自我的服务器的远程主机的所有可访问端口。
注意:服务器是企业的安全服务器,nmap或任何第三方工具都是不可用和可安装的。
发布于 2020-03-25 16:11:11
使用下面的脚本进行了尝试,运行良好
for i in host1 host2;
do
timeout 10 ssh -o 'StrictHostKeyChecking no' $i -A "exit"
if [[ $? == 0 ]]
then
echo "host $i is sshable"
ssh -o 'StrictHostKeyChecking no' $i -A <<'EOF'
k=`hostname`
netstat -altnp| awk '$0 ~ /LISTEN|ESTABLISHED/'| awk '{print $4}'| awk -F ":" '{print $NF}'| awk '{if(!seen[$1]++)print $0}'| sed "1i below are open ports on the host '$k'"
EOF
else echo "host $i is not sshable"
fi
done发布于 2020-03-25 06:02:46
此脚本适用于单端口扫描。
if timeout 5 bash -c '/dev/null'
then
echo "Port is open"
else
echo "Port is closed"
fi我不确定1秒是否太快,无法捕获一个开放的端口,但这是完整的端口范围。
#!/bin/bash
for PORT in {1..65535}; do
timeout 1 bash -c "/dev/null" && echo "Port $PORT is open"
donehttps://unix.stackexchange.com/questions/574797
复制相似问题