用 sudo nmap -sn 192.168.1.0/24 快速发现在线主机并获取ip与mac地址;再用 sudo nmap -pn -ss -p 1-1000 扫描端口,配合 -sv/-sc 识别服务,导出 xml 结果分析风险服务。

怎么快速扫出局域网里哪些 IP 在线且开了什么端口
直接用 nmap -sn 192.168.1.0/24 发 ICMP + ARP 探测,比 ping 一整段快得多。它不发端口扫描包,只确认存活主机,几秒内就能列出所有在线设备的 IP 和 MAC 地址。
注意:Linux 上普通用户执行时,ARP 扫描(-sn 对 /24 网段)默认生效;如果用非 root 用户,会退化成较慢的 TCP ping(连 443 或 80),可能漏掉防火墙屏蔽了 ICMP 的设备。所以建议加 sudo。
- 别写成
nmap 192.168.1.1-254—— 缺少-sn会默认做全端口扫描,既慢又容易被目标记录或拦截 - 若局域网有 Windows 主机且禁 ping,可追加
-PE -PS22,80,443强制用 ICMP + TCP SYN 混合探测 - 结果里看到
MAC Address: XX:XX:XX:XX:XX:XX (Vendor Name)就说明 ARP 成功,可信度高
扫开放端口时,为什么 nmap -Pn -sS 比默认扫描更稳
默认扫描(无参数)会先判断主机是否在线,但有些设备响应 ICMP 很慢或丢包,导致 nmap 误判为“down”,跳过端口扫描。加 -Pn 告诉它“别猜了,我确定这些 IP 都在线”,再配 -sS(半开 SYN 扫描)能绕过部分日志记录,也比 -sT(全连接)更快、更隐蔽。
典型命令:sudo nmap -Pn -sS -p 1-1000 192.168.1.10 —— 只扫常见前 1000 个端口,避免耗时太久。
-
-sS必须 root 权限,普通用户只能用-sT,但后者容易被服务端记为“完整连接”,干扰判断 - 别盲目扫
-p-(全部 65535 端口),多数局域网设备只开十几个关键端口,扫全端口可能触发防火墙速率限制 - 遇到扫描卡住,加
--max-retries 1 --host-timeout 30s控制重试和单主机超时
服务识别总显示 “open|filtered”?这是端口状态还是扫描方式问题
出现 open|filtered 不代表服务真没开,而是 nmap 没收到明确响应(SYN-ACK 或 RST),常见于:中间有防火墙 DROP 了探测包、目标主机禁用了 ICMP、或用了 -sT 但服务进程未监听该端口的 IPv4 地址(比如只绑定了 127.0.0.1)。
验证方法:对单个可疑端口换用 -sV(版本探测)+ -sC(默认脚本),例如 sudo nmap -sS -sV -sC -p 8080 192.168.1.20。如果返回具体服务名(如 Apache httpd 2.4.52),说明端口确实是 open;如果仍是 open|filtered,大概率是策略拦截。
-
-sV会尝试发送探测载荷,比单纯端口扫描更耗时,别在大范围扫描时加它 - 某些嵌入式设备(如摄像头、打印机)对 TCP 选项敏感,加
--scan-delay 100ms可降低误判率 - 如果目标是 Docker 容器或 NAT 后的设备,检查宿主机 iptables 或云平台安全组是否放行对应端口 ——
nmap扫不到,往往不是工具问题,是链路不通
如何导出结果并快速定位风险服务(比如 Redis 未授权、Samba 暴露)
用 -oX 输出 XML 最适合后续处理:sudo nmap -Pn -sS -sV -p 21,22,23,80,443,3389,6379,139,445 192.168.1.0/24 -oX scan.xml。XML 结构清晰,可以用 xmlstar 或 Python 的 xml.etree.ElementTree 提取含 redis、samba、ftp 等关键词的服务行。
更轻量的做法是用 -oG(grepable 格式)配合 grep:nmap -oG - 192.168.1.0/24 | grep "6379/open" | grep "redis"。但注意 -oG 已在新版 nmap 中弃用,推荐优先用 -oX 或 -oN(正常文本)。
- Redis 默认端口 6379 若显示
redis-server且无认证,立刻断网核查 —— 这类服务极易被横向利用 - Samba(139/445)若返回
samba smbd且没设访问控制,Windows 主机可能被枚举共享目录 - 别依赖
nmap自动识别 100% 准确,有些服务(如自定义 HTTP 管理界面)会伪装成http,需手动curl -v http://IP:PORT确认响应头和内容
实际跑起来才发现:局域网扫描最常卡在权限、防火墙策略和识别粒度上。root 权限不是可选,是必需;-Pn 不是偷懒,是应对现实网络环境的合理假设;而服务名后面那个括号里的版本号,有时候比端口本身更值得盯紧。











