Th3prof3ss0r/goscanner-high-performance-Go-port-scanner
GitHub: Th3prof3ss0r/goscanner-high-performance-Go-port-scanner
一款用 Go 编写的高性能端口扫描器,支持 TCP/SYN/UDP 多种扫描模式、服务版本检测和多种输出格式,解决快速大规模端口发现和资产清点的需求。
Stars: 0 | Forks: 0
# 🔍 GoScanner — 高性能 Go 端口扫描器




用 Go 编写的高性能端口扫描器,灵感源自 Nmap。支持 TCP Connect、SYN Stealth、UDP、版本/Banner 检测、CIDR 网络扫描以及多种格式的输出。
## ✨ 功能特性
- ⚡ **高性能** — 采用并发 worker 和 token bucket 进行速率限制
- 🔌 **TCP Connect 扫描**(默认)和 **SYN Stealth 扫描**(需要 root/sudo 权限)
- 📡 **UDP 扫描** 与 TCP 并行执行
- 🧠 **版本/服务检测** 通过 banner grabbing (`-sV`)
- 🖥️ **OS 指纹识别** (`-O`)
- 🌐 **支持 CIDR**、IP 范围、主机名和目标列表 (`-iL`)
- 📊 **多种输出格式**:`table`、`json`、`xml`、`csv`
- 🔢 **内置 Top N 端口** (`--top-ports`)
- 🌍 **IPv6 支持** (`-6`)
## 🚀 安装说明
### 前置条件
- [Go 1.21+](https://golang.org/dl/)
### 从源码编译
```bash
git clone https://github.com/Th3prof3ss0r/goscanner-high-performance-Go-port-scanner.git
cd goscanner-high-performance-Go-port-scanner
go build -o goscanner .
```
**Windows:**
```bash
go build -o goscanner.exe .
```
## 📖 使用方法
```bash
goscanner [flags] <目标> [目标 ...]
```
### 目标规范
| 格式 | 示例 |
|---------|---------|
| 单个 IP | `192.168.1.1` |
| CIDR 块 | `192.168.1.0/24` |
| IP 范围 | `192.168.1.1-254` |
| 主机名 | `example.com` |
| 文件 | `-iL hosts.txt` |
### 可用参数
| 标志 | 描述 | 默认值 |
|------|-----------|--------|
| `-p` | 端口:单个 (`80`)、范围 (`1-1024`)、列表 (`80,443`)、全部 (`-`) | top 1000 |
| `--top-ports N` | Top N 个最常用端口 | — |
| `-sS` | SYN 隐秘扫描 (需要 root/sudo) | false |
| `-sU` | 同时扫描 UDP 端口 | false |
| `-sV` | 服务/版本检测 (banner grabbing) | false |
| `-O` | 操作系统检测 | false |
| `-Pn` | 跳过主机发现 | false |
| `-w N` | 并发 worker 数量 | 1000 |
| `-t N` | 连接超时 (ms) | 500 |
| `--rate N` | 每秒最大数据包数 | 10000 |
| `-f` | 输出格式:`table`、`json`、`xml`、`csv` | table |
| `-o FILE` | 将结果保存到文件 | stdout |
| `--open` | 仅显示开放端口 | false |
| `-v` | 详细模式 (包括已关闭/被过滤的端口) | false |
| `-6` | 启用 IPv6 | false |
| `--version` | 显示版本 | — |
## 💡 示例
```bash
# 本地主机基础扫描
goscanner 127.0.0.1 -p 80,443,22
# 本地主机 Top 100 端口
goscanner 127.0.0.1 -p top100
# 服务/版本检测
goscanner 127.0.0.1 -p 22,80,443,3306 -sV
# CIDR 网络 — 仅显示开放端口
goscanner 192.168.1.0/24 -p 80,443 --open
# 快速 SYN 扫描并输出为 JSON
sudo goscanner -sS -p- --rate 100000 -f json -o resultado.json 10.0.0.1
# 编译并运行 (比 go run 更快)
go build -o goscanner.exe .
.\goscanner.exe 127.0.0.1 -p 1-1024
# 从文件扫描目标,使用 Top 1000 端口
goscanner -iL hosts.txt --top-ports 1000 -f csv -o relatorio.csv
```
## 🏗️ 项目结构
```
goscanner/
├── main.go # 入口点、标志解析和流程编排
├── scanner/ # 扫描引擎 (TCP、SYN、UDP、workers)
├── output/ # 输出格式化器 (table、json、xml、csv)
├── utils/ # 端口、IP、CIDR 和文件解析
├── go.mod
└── Makefile
```
## ⚠️ 免责声明
本工具仅供教育目的以及您拥有**明确授权**的网络中使用。在未经授权的情况下用于第三方网络可能是**非法**的。请负责任地使用。
## 📄 许可证
根据 [MIT](LICENSE) 许可证分发。
标签:Banner Grabbing, CIDR, EVTX分析, Golang, Go语言, Groq, IPv6, Linux安全, OS指纹识别, PowerShell, Qt框架, SYN扫描, TCP扫描, 二进制发布, 域名解析, 安全编程, 密码管理, 并发处理, 开源工具, 插件系统, 数据统计, 日志审计, 服务识别, 程序破解, 端口扫描, 网络安全, 隐私保护