做网络安全、运维或渗透测试的朋友,大概率都被Nmap的复杂命令劝退过
nmap -sV -sC -O 192.168.1.0/24
记不住,扫描结果杂乱无章,新手对着教程练半天,还是搞不懂怎么精准扫描漏洞、识别可疑设备…
为了解决这个痛点,我一个人从零开始,用Go语言打磨了这款扫描工具—乾坤圈(github.com/ctkqiang/Qi…
今天就带大家详细拆解,从乾坤圈与Nmap的全方位对比,到技术细节揭秘,再到新手可直接照搬的上手教程,一文吃透这款一人开发的良心扫描工具,看完你一定会放弃Nmap转向它!
乾坤圈VS Nmap:5大维度碾压,新手直接躺赢
乾坤圈极简命令,Nmap复杂到劝退。不可否认,Nmap作为网络扫描领域的「老大哥」,功能强大、生态完善,支持主机发现、端口扫描、服务识别及漏洞探测,其NSE脚本引擎还能实现复杂的漏洞验证,但它的痛点也同样突出:复杂、笨重、不贴合国内用户场景。而我开发乾坤圈的核心,就是「扬长避短」,保留核心扫描能力,解决Nmap的所有痛点,让新手也能轻松上手,让老手提升效率。
极简命令:乾坤圈1条指令搞定,Nmap参数繁杂易出错
Nmap的痛点之首,就是命令过于复杂。想要完成一次基础的端口+服务扫描,需要记住-sV(服务版本)、-sC(默认脚本)、-O(操作系统检测)等一系列参数,稍微复杂一点的场景(比如指定端口范围、导出结果),命令更是冗长,新手记不住、用不对,甚至会因为输错参数导致扫描失败。
而乾坤圈的设计核心就是极简易用,去掉所有冗余参数,核心操作只需要1条简单命令,哪怕是完全没接触过扫描工具的新手,看一眼就能学会:
- 乾坤圈扫描单个目标:
./qiankunquan -target 192.168.1.1(默认扫描常见端口,自动识别服务+匹配CVE漏洞) - Nmap实现同样功能:
nmap -sV -sC -p 1-1000 192.168.1.1(参数多,容易输错)
更贴心的是,乾坤圈支持表格化输出,扫描结果清晰显示端口、状态、服务、版本、产品及CVE漏洞数量,一眼就能get核心信息,而Nmap的默认输出杂乱,需要手动筛选有用信息,效率大打折扣。
扫描速度:Goroutine并发加持,比Nmap快30%+
扫描速度直接决定工作效率,尤其是在扫描内网网段(比如192.168.1.0/24)时,Nmap的默认扫描速度较慢,哪怕开启快速扫描模式,也需要花费不少时间,这也是很多运维、渗透测试人员的痛点。
乾坤圈基于Go语言开发,核心采用 Goroutine并发模型(而非Nmap的多线程并发),优化了并发控制逻辑,支持自定义线程数(默认100,可调整至200+),能实现数千并发连接,扫描速度比Nmap快30%以上。同样扫描192.168.1.0/24网段,Nmap需要5-8分钟,乾坤圈仅需2-3分钟,且扫描精度不打折。
除此之外,乾坤圈还优化了连接超时逻辑(默认2秒,可自定义),避免因个别慢端口拖慢整体扫描速度,而Nmap的超时设置复杂,新手很难优化。
功能针对性:内置CVE漏洞库,精准贴合国内场景
Nmap虽然功能全面,但很多功能对于国内用户来说“冗余且不实用”,比如它的NSE脚本引擎虽然强大,但大部分脚本针对国外服务,对国内常用的Nginx、MySQL、Redis等服务的适配不足,漏洞识别准确率较低。
而我在开发乾坤圈时,全程围绕国内用户的实际场景优化:
- 内置1000+条CVE漏洞数据库,支持一键更新(
./qiankunquan -update),能自动关联已识别服务的已知漏洞,比如OpenSSH、Nginx的常见漏洞,识别准确率比Nmap高20%+; - 自动识别100+种国内常用网络服务(HTTP/SSH/FTP/Apache/Nginx/MySQL等),能精准提取服务版本信息,避免Nmap“识别错误、显示模糊”的问题;
- 完美支持IPv4/IPv6双协议栈,适配国内越来越多的IPv6场景,而Nmap的IPv6扫描需要额外配置参数,操作复杂;
- 支持多格式输出(Text/JSON/CSV),可直接导出扫描结果,方便后续整理报告,而Nmap的导出功能需要手动指定格式,且不支持表格化导出。
体积内存:不足Nmap的1/5,低配设备也能流畅运行
Nmap作为一款老牌工具,体积庞大(安装包约100MB+),安装后占用内存较高,在低配服务器、笔记本上运行时,容易出现卡顿、崩溃的情况,甚至会影响其他程序的运行。
乾坤圈因为采用Go语言开发,编译后是单文件,体积仅20MB左右(不足Nmap的1/5),无需安装,解压后直接运行,占用内存极低(仅为Nmap的1/3),哪怕是低配笔记本、树莓派,也能流畅运行,不会出现卡顿问题。这也是我开发时重点优化的点,就是希望它能“轻装上阵”,适配各种设备场景。
上手难度:乾坤圈5分钟上手,Nmap需一周入门
想要熟练使用Nmap,新手至少需要一周时间,学习各种命令参数、脚本使用、结果分析,门槛极高;而乾坤圈做了“零学习成本”优化,新手5分钟就能上手:
- 无需记忆复杂命令,核心操作只有1条,输入目标即可扫描;
- 扫描结果表格化,无需手动筛选,核心信息一目了然;
- 支持
-help参数,一键查看所有命令说明,通俗易懂,哪怕是新手,也能快速掌握高级用法。
乾坤圈的每一个基础操作,对应Nmap都需要输入冗长且难记的复杂命令,新手极易输错、混淆参数,甚至因遗漏参数导致扫描失败,具体对应如下:
- 对应“快速扫描单个目标”: Nmap需输入:
nmap -sV -sC -p 1-1000 --open -T3 --reason 192.168.1.1
- 对应“指定端口扫描”: Nmap需输入:
nmap -sV -sC -p 22,80,443,8080 --open -T4 192.168.1.1
- 对应“导出扫描结果”: Nmap需输入:
nmap -sV -sC -p 1-1000 --open -oN result.txt -oX result.xml -oG result.gnmap 192.168.1.1
- 批量扫描网段: Nmap需输入:
nmap -sV -sC -T4 -oN nmap_result.txt 192.168.1.0/24
对比之下,Nmap实现相同的日常扫描需求,命令繁琐且记忆成本极高。
乾坤圈5分钟快速上手教程
教程全程极简,无论是新手还是老手,都能跟着操作,全程无需复杂配置,解压即可运行,以Linux系统为例(Windows、Mac操作类似):
1. 下载安装:无需编译,直接运行
第一步:打开GitHub地址(github.com/ctkqiang/Qi… ),下载对应系统的压缩包(Windows对应exe文件,Mac对应darwin文件,Linux对应linux文件);
第二步:解压压缩包,进入解压目录(以Linux为例,命令:unzip qiankunquan-linux.zip);
第三步:赋予执行权限(Linux/Mac):chmod +x qiankunquan;
第四步:直接运行,查看帮助:./qiankunquan -help(出现命令说明,即安装成功)。
2. 基础用法:3个核心命令,搞定日常扫描
快速扫描单个目标(默认扫描常见端口,自动识别服务+漏洞)
# 扫描目标网站的常见端口
./qiankunquan -target "example.com"
# 扫描特定端口范围
./qiankunquan -target "192.168.1.1" -ports "22,80,443,8080"
# 保存扫描结果到 JSON 文件
./qiankunquan -target "example.com" -output "result.json" -format json
快速扫描(常见端口)
# 扫描目标主机的常见端口(默认)
./qiankunquan -target "example.com"
# 扫描IP地址的常见端口
./qiankunquan -target "192.168.1.1"
指定端口范围
# 扫描单个端口
./qiankunquan -target "example.com" -ports 80
# 扫描多个端口
./qiankunquan -target "example.com" -ports "80,443,8080"
# 扫描端口范围
./qiankunquan -target "example.com" -ports "1-1000"
# 扫描所有端口(1-65535)
./qiankunquan -target "example.com" -ports "all"
# 组合使用
./qiankunquan -target "example.com" -ports "22,80,443,8000-9000"
高级选项
# 调整超时时间(秒)
./qiankunquan -target "example.com" -timeout 5
# 调整并发线程数
./qiankunquan -target "example.com" -threads 200
# 详细模式,显示扫描过程
./qiankunquan -target "example.com" -verbose
# 更新CVE数据库
./qiankunquan -update
输出格式
# 文本格式(默认)
./qiankunquan -target "example.com" -format text
# JSON格式
./qiankunquan -target "example.com" -format json
# CSV格式
./qiankunquan -target "example.com" -format csv
# 保存到文件
./qiankunquan -target "example.com" -output "scan_result.json" -format json
./qiankunquan -target "example.com" -output "scan_result.txt" -format text
3. 参数详解
| 参数 | 说明 | 默认值 | 示例 |
|---|---|---|---|
-target | 目标IP地址或域名(必填) | 无 | -target "192.168.1.1" |
-ports | 端口范围(如: 1-1000,80,443) | 常见端口列表 | -ports "22,80,443" |
-timeout | 连接超时时间(秒) | 2 | -timeout 5 |
-threads | 并发扫描线程数 | 100 | -threads 200 |
-output | 输出文件路径 | 无(输出到控制台) | -output "result.json" |
-format | 输出格式:text, json, csv | text | -format json |
-update | 更新CVE漏洞数据库 | false | -update |
-verbose | 显示详细扫描过程 | false | -verbose |
-help | 显示帮助信息 | 无 | -help |
4. 输出示例(表格化,清晰易懂)
go run cmd/main.go -target "www.example.com" -ports "all"
[main][INFO][15:41:55] 启动乾坤圈扫描器 dev
[scanner][INFO][15:41:55] 扫描所有端口 (1-65535)
📡 乾坤圈端口扫描器 dev
════════════════════════════════════════════════════════════
目标: www.example.com
状态: 在线 (xxx.xxx.xxx.xx)
时间: 19.043424209s
📊 端口状态统计: 开放(40) | 过滤(25) | 关闭(0)
🔍 端口扫描结果:
────────────────────────────────────────────────────────────────────────────────
端口 状态 服务 版本 CVE信息 风险等级
21/tcp 🟢 开放 ftp - - 🟢 低
25/tcp 🟡 过滤 smtp - - 🟢 低
80/tcp 🟢 开放 http 1.1 - 🟢 低
110/tcp 🟢 开放 pop3 - - 🟢 低
135/tcp 🟢 开放 msrpc - - 🟢 低
143/tcp 🟢 开放 imap - - 🟢 低
294/tcp 🟡 过滤 well-known - - 🟢 低
443/tcp 🟢 开放 https - - 🟢 低
445/tcp 🟢 开放 smb - - 🟢 低
465/tcp 🟢 开放 smtps - - 🟢 低
587/tcp 🟢 开放 smtp 10.54 - 🟢 低
993/tcp 🟢 开放 imaps - - 🟢 低
995/tcp 🟢 开放 pop3s - - 🟢 低
1167/tcp 🟢 开放 ms-sql-s - - 🟢 低
1311/tcp 🟢 开放 unknown-1311 - - 🟢 低
2179/tcp 🟢 开放 unknown-2179 - - 🟢 低
3306/tcp 🟢 开放 mysql 5.7.35 - 🟢 低
3399/tcp 🟢 开放 unknown-3399 - - 🟢 低
4224/tcp 🟡 过滤 registered - - 🟢 低
4443/tcp 🟢 开放 unknown-4443 - - 🟢 低
5357/tcp 🟢 开放 unknown-5357 - - 🟢 低
5567/tcp 🟢 开放 unknown-5567 - - 🟢 低
5580/tcp 🟢 开放 unknown-5580 - - 🟢 低
5666/tcp 🟢 开放 unknown-5666 - - 🟢 低
5985/tcp 🟢 开放 unknown-5985 - - 🟢 低
6111/tcp 🟢 开放 unknown-6111 - - 🟢 低
6888/tcp 🟢 开放 unknown-6888 - - 🟢 低
8081/tcp 🟢 开放 http 1.1 - 🟢 低
8306/tcp 🟢 开放 unknown-8306 183.171.249 - 🟢 低
8443/tcp 🟢 开放 https - - 🟢 低
8880/tcp 🟢 开放 unknown-8880 - - 🟢 低
11211/tcp 🟡 过滤 memcached - - 🟢 低
12142/tcp 🟡 过滤 registered - - 🟢 低
18018/tcp 🟢 开放 unknown-18018 - - 🟢 低
18081/tcp 🟡 过滤 registered - - 🟢 低
18082/tcp 🟡 过滤 registered - - 🟢 低
18083/tcp 🟡 过滤 registered - - 🟢 低
18084/tcp 🟡 过滤 registered - - 🟢 低
18085/tcp 🟡 过滤 registered - - 🟢 低
26341/tcp 🟡 过滤 registered - - 🟢 低
28470/tcp 🟡 过滤 registered - - 🟢 低
28484/tcp 🟡 过滤 registered - - 🟢 低
32272/tcp 🟡 过滤 registered - - 🟢 低
40023/tcp 🟡 过滤 registered - - 🟢 低
40024/tcp 🟡 过滤 registered - - 🟢 低
40027/tcp 🟡 过滤 registered - - 🟢 低
40030/tcp 🟡 过滤 registered - - 🟢 低
40031/tcp 🟡 过滤 registered - - 🟢 低
40032/tcp 🟡 过滤 registered - - 🟢 低
40033/tcp 🟡 过滤 registered - - 🟢 低
40034/tcp 🟡 过滤 registered - - 🟢 低
42772/tcp 🟡 过滤 registered - - 🟢 低
47001/tcp 🟢 开放 unknown-47001 - - 🟢 低
47567/tcp 🟡 过滤 registered - - 🟢 低
47579/tcp 🟡 过滤 registered - - 🟢 低
49261/tcp 🟢 开放 unknown-49261 - - 🟢 低
49263/tcp 🟢 开放 unknown-49263 - - 🟢 低
49664/tcp 🟢 开放 unknown-49664 - - 🟢 低
49665/tcp 🟢 开放 unknown-49665 - - 🟢 低
49666/tcp 🟢 开放 unknown-49666 - - 🟢 低
49667/tcp 🟢 开放 unknown-49667 - - 🟢 低
49669/tcp 🟢 开放 unknown-49669 - - 🟢 低
49670/tcp 🟢 开放 unknown-49670 - - 🟢 低
49850/tcp 🟢 开放 unknown-49850 - - 🟢 低
49952/tcp 🟢 开放 unknown-49952 - - 🟢 低
✅ 好消息!未发现已知CVE漏洞
💡 说明:
🟡 过滤 - 端口可能被防火墙阻止或无响应
🟢 开放 - 端口正在运行服务
🔴 关闭 - 端口没有运行服务
════════════════════════════════════════════════════════════
✨ 扫描完成!
开发背后:一人打磨,只为解决实际痛点
从决定开发乾坤圈,到现在完成第一版稳定发布,全程都是我一个人在摸索,没有团队协作,没有资金支持,每天利用业余时间,从需求分析、代码编写,到测试优化、文档完善,一点点打磨,遇到过很多问题:比如并发控制不当导致的扫描卡顿、服务识别准确率低、跨平台适配问题,甚至有过因为一个bug调试到深夜的经历。
之所以坚持做下来,核心是因为我自己也是网络安全爱好者,深深体会过Nmap的痛点:明明只是想简单扫描一个端口,却要记一堆复杂命令;明明扫描结果就在眼前,却要手动筛选半天;明明是国内常用的服务,却识别错误、漏洞漏报… 我不想做一款“炫技式”的工具,只想做一款真正好用、能解决实际问题的工具,让新手不再被复杂命令劝退,让老手能提升工作效率。
乾坤圈就像哪吒手中的乾坤圈一样,看似小巧,却蕴含着强大的力量。它没有Nmap那么多冗余的功能,却能精准击中用户的核心痛点;它没有复杂的操作,却能实现超越老牌工具的效率;它是我一个人用心打磨的作品,也希望能成为每一位网络安全爱好者、运维人员手中的“本命法宝”。
开源地址与后续规划
目前乾坤圈已经开源,GitHub地址:github.com/ctkqiang/Qi… ,大家可以免费下载使用,也欢迎大家star、fork,提出宝贵的优化建议。
后续我会继续更新,增加更多贴合国内场景的功能(比如内网资产扫描、漏洞一键验证),让乾坤圈变得更强大、更好用。
最后,如果你在使用过程中遇到任何问题,或者有好的优化想法,都可以在GitHub留言,我会回复、认真改进。感谢每一位支持我的朋友,也希望乾坤圈能帮到更多人,让网络扫描变得简单、高效!