AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 788934
Accepted
λ Jonas Gorauskas
λ Jonas Gorauskas
Asked: 2016-07-10 11:36:30 +0800 CST2016-07-10 11:36:30 +0800 CST 2016-07-10 11:36:30 +0800 CST

检查远程主机/端口是否打开 - 无法使用 GNU Netcat 或 NMap - RHEL 7

  • 772

在工作中,基础架构团队正在推出安装了 RHEL7 作为基本操作系统的新 VM。此特定图像随nmap-ncatNetcat 版本一起提供,并且没有安装 NMap。我们被禁止在机器上安装任何东西。

以前,我们使用 GNU Netcat,它可以-z选择扫描远程主机/端口以检查它是否打开。像这样的东西:

nc -z -v -w 3 remote.host.name 1234

如何在无法安装的系统上使用ncat没有选项的新版本进行相同的检查?-znmap

netcat rhel7 nmap
  • 3 3 个回答
  • 28024 Views

3 个回答

  • Voted
  1. Best Answer
    HBruijn
    2016-07-10T12:00:31+08:002016-07-10T12:00:31+08:00

    Bash 允许您通过重定向到特殊文件来连接到 TCP 和/或 UDP 端口:

    /dev/tcp/host/port如果 host 是一个有效的主机名或 Internet 地址,并且 port 是一个整数端口号或服务名,Bash 会尝试打开相应的 TCP 套接字。

    /dev/udp/host/port如果 host 是一个有效的主机名或 Internet 地址,并且 port 是一个整数端口号或服务名,Bash 会尝试打开相应的 UDP 套接字。

    打开或创建文件失败会导致重定向失败。

    因此,要测试您是否可以连接到 www.example.com 上的端口 80,以下应该可以工作:

    echo -n > /dev/tcp/www.example.com/80
    

    如果端口被阻止,您将收到“连接被拒绝”消息或超时。

    • 16
  2. bonsaiviking
    2016-07-12T08:39:44+08:002016-07-12T08:39:44+08:00

    虽然 Ncat 还不支持-z,但您可以通过 shell 重定向获得相同的行为:

    $ ncat google.com 80 </dev/null >/dev/null && echo "yes"
    yes
    $ ncat google.com 81 </dev/null >/dev/null && echo "yes"
    Ncat: Connection timed out.
    $ ncat scanme.nmap.org 1234 </dev/null >/dev/null && echo "yes"
    Ncat: Connection refused.
    

    可以使用该-w选项调整连接超时。

    编辑:Ncat 7.25BETA2引入了-z与 GNU netcat 一样工作的选项,但仅限于单个端口。如果你需要扫描端口范围,你应该使用 Nmap。

    • 9
  3. AGS
    2019-04-26T07:09:38+08:002019-04-26T07:09:38+08:00

    netcat、telnet 和 nmap 都不需要。Bash 更简单、便携且更高效。

    开支票

    (>/dev/tcp/example.com/80) &>/dev/null && echo "Open" 
    

    打开/关闭检查

    (>/dev/tcp/example.com/80) &>/dev/null && echo "Open" || echo "Closed"
    

    端口范围检查

    for i in $(seq 80 88); do (>/dev/tcp/example.com/80/$i) &>/dev/null && echo $i Open|| echo $i Closed; done
    
    • 2

相关问题

  • TCP 会话和 IP 更改

  • SSH 和端口转发 socks 代理

  • 大数据传输中的网络性能

  • 使用 telnet 或 netcat 发送带有附件的电子邮件

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve