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 / 问题 / 797763
Accepted
MrDuk
MrDuk
Asked: 2016-08-19 13:22:29 +0800 CST2016-08-19 13:22:29 +0800 CST 2016-08-19 13:22:29 +0800 CST

为什么 netcat 扫描 UDP 端口总是成功?

  • 772

我正在尝试验证我们的一些服务器是否可以在将我们的一些服务迁移到它们之前通过某些端口进行通信,并且它们没有被我们组织的防火墙 ACL 阻止。

说得通

[mrduki@mybox1~]$ nc -ul 40000
---
[mrduki@mybox2~]$ nc -zvuw2 mybox1.com 40000
Connection to mybox1.com 40000 port [udp/*] succeeded!

没有意义

[mrduki@mybox1~]$ nc -ul 40000
[mrduki@mybox1~]$ ^C
---
[mrduki@mybox2~]$ nc -zvuw2 mybox1.com 40000
Connection to mybox1.com 40000 port [udp/*] succeeded!

事实上,如果我从 进行端口扫描40000-40100,每个端口都会成功。

如果我在没有的情况下进行相同的测试-u(以便它测试 TCP 而不是 UDP),我会得到40000 (tcp) timed out: Operation now in progress错误,正如我所期望的那样(因为我没有监听这样的 TCP 服务40000)。

做一个虽然显示没有这样的服务在这些端口上监听sudo netstat -alnp | grep LISTEN。mybox1那么我错过了什么?

port access-control-list netcat nc
  • 3 3 个回答
  • 7384 Views

3 个回答

  • Voted
  1. 84104
    2016-08-19T14:50:00+08:002016-08-19T14:50:00+08:00

    UDP 是一种“无连接”协议。如果您发送一个数据包并且没有收到拒绝(通过 ICMP),那么无论您是否收到回复,都被认为是成功的。很常见的情况是防火墙阻止目标的 ICMP 拒绝数据包被发回给您(netcat 使用它来知道端口是否关闭,否则它认为它是打开的)。

    将此与有状态的 TCP 进行对比。未能接收到回复 (ACK) 被视为 TCP 内的故障(这通常显示为“已过滤”),否定回复也是如此(RST,将显示为已关闭)。

    UDP:打开|过滤关闭 TCP:打开关闭过滤

    • 6
  2. Best Answer
    Ryan Babchishin
    2016-08-19T14:30:36+08:002016-08-19T14:30:36+08:00

    nc可能不是测试端口状态的最佳工具。你试过nmap吗?它实际上是一个端口扫描器。我检查了我的家庭网络和 127.0.0.1 上的文件服务器,两者都报告UDP port 40000已关闭。

    地图

    # nmap -sU -p 40000 igor
    
    Starting Nmap 7.01 ( https://nmap.org ) at 2016-08-18 18:27 EDT
    Nmap scan report for igor (192.168.1.125)
    Host is up (0.00027s latency).
    rDNS record for 192.168.1.125: igor.swass
    PORT      STATE  SERVICE
    40000/udp closed unknown
    MAC Address: 68:05:CA:3A:BF:B7 (Intel Corporate)
    
    Nmap done: 1 IP address (1 host up) scanned in 0.53 seconds
    

    内核 + /dev

    您也可以像这样使用内核来执行此操作。但nmap可能更好。

    # timeout 3 cat < /dev/udp/example.com/40000
    

    当我nc在同一台服务器(igor)上尝试时,我得到了和你一样的结果。但是我回去再试一次,现在它没有返回任何输出(没有成功的消息),wireshark 显示“目标无法访问”正在通过 ICMP 发回。我不明白这些。但我会切换到另一种检查 UDP 端口状态的方法。

    • 4
  3. David Schwartz
    2016-08-19T19:16:19+08:002016-08-19T19:16:19+08:00

    没有防火墙阻止 UDP 连接尝试成功,因为使用 UDP 连接不涉及发送任何内容或侦听任何响应。在功能上,UDP 连接操作与发送到实际发送数据的点相同,即:

    1. 确保选定的本地端口可以绑定到(如果已选择)。
    2. 如果没有选择本地端口,则选择一个。
    3. 锁定端点,使其默认与选定的 IP 和端口通信,并丢弃从任何其他 IP 地址或端口接收的任何数据报。
    4. 系统可能会改变处理某些类型错误的方式。
    5. 而已。

    请注意,这些都不会做任何防火墙会干扰的事情,也不会在网络上发送任何东西。

    • 0

相关问题

  • 如何从命令提示符打开 Windows Server 2003 RTM 上的端口

  • 在wireshark中更改与端口关联的协议

  • GlassFish 更改 Web 服务的端口

  • 端口 135 / epmap

  • 如何查看 Windows 机器上是否正在使用端口?

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