首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取linux中远程主机的所有开放端口。

获取linux中远程主机的所有开放端口。
EN

Unix & Linux用户
提问于 2020-03-25 04:53:32
回答 2查看 350关注 0票数 0

试图连接到远程主机的特定端口。可以到达主机(通过ping命令检查),但无法访问端口。

是否有任何方法检查来自我的服务器的远程主机的所有可访问端口。

注意:服务器是企业的安全服务器,nmap或任何第三方工具都是不可用和可安装的。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2020-03-25 16:11:11

使用下面的脚本进行了尝试,运行良好

代码语言:javascript
复制
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
票数 0
EN

Unix & Linux用户

发布于 2020-03-25 06:02:46

此脚本适用于单端口扫描。

代码语言:javascript
复制
if timeout 5 bash -c '/dev/null'
then
  echo "Port is open"
else
  echo "Port is closed"
fi

我不确定1秒是否太快,无法捕获一个开放的端口,但这是完整的端口范围。

代码语言:javascript
复制
#!/bin/bash
for PORT in {1..65535}; do
timeout 1 bash -c "/dev/null" &&  echo "Port $PORT is open"
done
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/574797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档