nmap扫描整个网段
直接敲下这条命令:nmap -sn 192.168.1.0/24。扫描回车。网段三秒后,扫描屏幕上跳出三十多行结果,网段从 192.168.1.1 到 192.168.1.37,扫描活着的网段设备一个不落。这就是扫描扫全网段最朴素的玩法——不探端口,只问一句“谁在线”。网段
很多人一上来就 nmap -sS 192.168.1.0/24,扫描结果等半天,网段还容易被防火墙逮住。扫描其实先 -sn 摸清底数更聪明。网段我习惯把这一步叫“点名”。扫描你家路由器、网段手机、扫描电视盒子、智能灯泡,甚至邻居蹭网的设备,全在名单里。上周我扫公司测试网段,发现一台 192.168.1.88 的机器,ping 不通,但 nmap 说它活着。后来查出来是台老打印机,禁了 ICMP 但开着 ARP 响应。你看,-sn 靠 ARP 和 TCP SYN 探测,比单纯 ping 靠谱得多。
扫完活着的主机,下一步才是端口。但别急着全端口扫,-p 1-1000 先试试水。我一般加 -T4 提速,内网里 -T5 也行,丢包就重试。有次帮朋友看家里网络,nmap -sT 192.168.0.0/24 -p 22,80,443,3389,结果发现三台设备开着 3389。一台是 Windows 主机,另两台居然是摄像头。朋友脸都绿了。这种扫描不暴力,但信息量足够让你后背发凉。
如果你想知道对面跑什么系统,-O 参数加上。不过内网里 Windows 和 Linux 的指纹经常被误判,尤其开了防火墙之后。我试过扫一台 Ubuntu 服务器,nmap 非说它是 Windows Server 2008。后来用 -sV 看服务版本才纠正过来。所以别迷信 -O,版本探测更实在。-sV 会连上去抓 banner,慢是慢点,但准。
还有个小技巧:--open 只显示开放端口,省得满屏 filtered 和 closed。再配上 -oG 输出成 grep 能吃的格式,后期处理方便。比如 nmap -sV --open -oG scan.txt 192.168.1.0/24,然后 grep "22/open" scan.txt 直接列出所有开 SSH 的机器。这招在批量管理时特别顺手。
但扫全网段有个坑:ARP 风暴。尤其 -sn 在 /24 里跑,几百个 ARP 请求发出去,老旧交换机可能直接卡死。我吃过一次亏,把实验室的 Cisco 2960 干重启了。后来学乖了,--max-rate 50 限制发包速度,或者分片扫,192.168.1.0/25 和 192.168.1.128/25 分两次来。别嫌麻烦,网络设备比你想象中脆弱。
最后说个真事。有次我扫一个 /24 网段,-sn 只返回了 12 个设备。但我知道那网段至少 40 台机器。换 -PR 强制 ARP 扫描,还是 12 个。后来发现是 VLAN 隔离,不同子网之间 ARP 不互通。nmap 再强,也跨不了二层隔离。这时候要么换三层扫描 -PE,要么直接上交换机看 MAC 表。工具是死的,网络是活的。
所以别指望一条命令吃遍天。-sn 看谁在,-sS 看端口,-sV 看服务,-O 猜系统。组合起来,再根据结果调整。扫完记得关掉终端,别让日志里留一堆扫描记录。内网里没人管你,但出了门,nmap 的默认扫描速度足够触发 IDS 告警。自己家玩玩就好。
(责任编辑:休闲)














