Why nmap -PU can't find any host available,even the target machine return an ICMP port unreachable p

本文探讨了使用Nmap进行主机发现时遇到的问题,特别是当目标机器返回ICMP端口不可达包时,Nmap未能正确识别主机为在线状态的情况。文中详细介绍了Nmap的-PU选项的工作原理,并通过Wireshark捕获的数据包来辅助分析问题所在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Why nmap -PU can't find any host available,even the target machine return an ICMP port unreachable packet.


I run [nmap -sn -n -PU xxx.xxx.xxx.xxx/24]for host discovery,The description of -PU in official Documents:


[Upon hitting a closed port on the target machine, the UDP probe should elicit an ICMP port unreachable packet in return. This signifies to Nmap that the machine is up and available.]


Meaning that when the target host returns ICMP unreachable [Type3 Code3].Nmap will report this host is available.
I use wireshark to capture.And wireshark displays many hosts replied ICMP port unreachable,but the final result is shown by nmap:"Nmap done: 256 IP addresses (0 hosts up)",Meaning is no host is available. Selinux and iptables are disable.


My computer:
Centos 6.5

Nmap 6.40

下面是在windows XP下运行的截图,在centos下运行一样,因为截图不方便所以在window下上图。


<think>好的,我现在需要回答用户关于两条nmap命令的作用的问题。首先,我得先理解用户的问题是什么。用户给出了两个具体的nmap命令,询问它们各自的作用。用户之前的问题是关于虚拟机IP和本地IP不在同一子网的解决方法,现在可能是在进行网络排查时遇到了需要扫描主机的情况,所以想知道这两个命令的具体用途。 首先,我需要回忆nmap的常用参数和功能。nmap是一个网络扫描工具,用于发现主机和服务,检测操作系统和版本等信息。用户提供的两条命令分别是: 1. `sudo nmap -p- -T4 --open <Physical_Host_IP>` 2. `sudo nmap -sV -O <Physical_Host_IP>` 我要逐个分析这些参数的作用,确保正确理解每个选项的含义。 对于第一条命令:`sudo nmap -p- -T4 --open <Physical_Host_IP>` - `sudo`:以超级用户权限运行,可能需要某些扫描类型(如SYN扫描)需要root权限。 - `nmap`:调用nmap工具。 - `-p-`:这个参数应该是指扫描所有端口,从1到65535。通常`-p`后面指定端口范围,`-p-`可能是一个简写,表示全端口扫描。 - `-T4`:设置时间模板为4,即较快的扫描速度,可能影响准确性,但速度更快。 - `--open`:仅显示开放(open)状态的端口,过滤掉关闭或过滤的端口。 - `<Physical_Host_IP>`:目标主机的IP地址。 所以第一条命令的作用是快速扫描目标主机的所有端口,并只显示开放的端口。这可以帮助用户快速了解目标主机上哪些端口是开放的,进而判断运行的服务。 接下来是第二条命令:`sudo nmap -sV -O <Physical_Host_IP>` - `-sV`:版本检测,nmap会尝试确定端口上运行的服务及其版本信息。 - `-O`:启用操作系统检测,nmap会尝试猜测目标主机的操作系统类型。 - 同样需要`sudo`权限,可能因为操作系统检测和某些服务版本检测需要更高权限。 这条命令的作用是检测目标主机开放端口上的服务版本以及操作系统类型,帮助用户更详细地了解目标主机的配置。 现在需要验证这些参数是否正确。例如,`-p-`是否真的是全端口扫描?查阅nmap文档确认,是的,`-p-`等同于`-p 1-65535`,即扫描所有端口。`-T4`调整时间参数,加快扫描速度。`--open`确实只显示开放端口。而`-sV`和`-O`分别是版本和操作系统检测。 然后要考虑用户的使用场景。用户可能是在进行网络诊断或安全评估,需要了解目标主机的开放端口和服务,以及操作系统信息。例如,在解决网络连通性问题后,确认服务是否可达,或者检查是否有不必要的服务在运行。 接下来需要组织回答的结构,先分别解释每条命令的作用,参数分解,使用场景,最后可能给出示例或注意事项。需要确保用中文清晰解释每个部分,同时保持技术准确性。 可能的误区或需要强调的点包括:使用sudo的原因,不同扫描类型的权限需求,扫描速度与准确性的权衡,以及在实际使用中可能遇到的网络限制或道德法律问题。 另外,用户之前的问题涉及虚拟机和宿主机网络配置,可能现在是在同一网络环境中进行扫描,因此需要注意扫描的合法性和对目标主机的影响。不过用户的问题仅询问命令的作用,可能不需要深入讨论这些,但可以适当提醒。 总结来说,回答需要分两部分,分别解释每条命令的参数、作用、示例输出和典型应用场景,最后可能给出综合使用的建议或注意事项。</think>以下是关于两条`nmap`命令的详细解释: --- ### **第一条命令:`sudo nmap -p- -T4 --open <Physical_Host_IP>`** #### 作用: **快速扫描目标主机的所有端口,仅显示开放端口。** #### 参数分解: 1. **`sudo`** 以管理员权限运行,某些扫描类型(如SYN扫描)需要Root权限。 2. **`-p-`** 扫描 **全端口(1-65535)**,默认仅扫描常见1000个端口,此参数强制覆盖全部端口。 3. **`-T4`** 设置扫描速度为 **“快速”模式**(1-5级,5最快),平衡速度与准确性。 4. **`--open`** 仅显示 **状态为“开放(open)”的端口**,过滤掉“关闭”或“被过滤”的端口。 5. **`<Physical_Host_IP>`** 替换为目标主机的实际IP地址(例如`192.168.1.100`)。 #### 示例输出: ```bash Starting Nmap 7.80 ( https://nmap.org ) Nmap scan report for 192.168.1.100 Host is up (0.003s latency). Not shown: 65530 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https 3306/tcp open mysql 8080/tcp open http-proxy ``` #### 典型应用场景: - **快速发现主机暴露的端口**(如排查未知服务或安全风险)。 - **网络管理员审计开放端口**。 --- ### **第二条命令:`sudo nmap -sV -O <Physical_Host_IP>`** #### 作用: **深度探测目标主机的服务版本和操作系统类型。** #### 参数分解: 1. **`-sV`** 启用 **服务版本检测**,通过协议交互识别运行在端口上的具体服务及其版本。 2. **`-O`** 启用 **操作系统指纹识别**,基于TCP/IP协议栈特征推测操作系统类型。 3. **`sudo`** 操作系统检测和部分服务版本探测需要Root权限。 #### 示例输出: ```bash Starting Nmap 7.80 ( https://nmap.org ) Nmap scan report for 192.168.1.100 Host is up (0.002s latency). Not shown: 995 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) 443/tcp open ssl/http Apache httpd 2.4.41 ((Ubuntu)) 3306/tcp open mysql MySQL 5.7.32-0ubuntu0.20.04.1 8080/tcp open http Node.js Express framework Aggressive OS guesses: Linux 4.15 - 5.6 (96%), Linux 5.0 - 5.4 (95%) ``` #### 典型应用场景: - **安全渗透测试**:识别潜在漏洞(如过时的服务版本)。 - **网络资产盘点**:精确记录服务类型和操作系统信息。 --- ### **综合使用建议** 1. **组合使用两条命令**: - 先用第一条命令找到开放端口,再用第二条命令针对这些端口进行深度探测。 - 示例:`sudo nmap -p22,80,443 -sV -O 192.168.1.100` 2. **注意事项**: - **合法性**:未经授权扫描他人网络可能违反法律或企业政策。 - **网络影响**:高速扫描(如`-T5`)可能触发防火墙警报或影响目标主机性能。 - **准确性**:操作系统识别(`-O`)可能存在误判,需结合其他信息验证。 --- ### **扩展知识** - 若需保存扫描结果,可添加`-oN <文件名>`参数(如`-oN scan_result.txt`)。 - 隐蔽扫描可使用`-sS`(SYN扫描),但需Root权限。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值