seramo/sni-scanner
GitHub: seramo/sni-scanner
一个基于 Bash 的轻量级 SNI 端口扫描工具,用于批量检测 IP 与域名上的常用 HTTPS/CDN 端口可达性。
Stars: 23 | Forks: 1
# SNI 扫描器
一个轻量级的 Bash 工具,用于扫描一组 IP 和域名上的常用 CDN 端口。
## 描述
**SNI 扫描器** 是一个基于 Bash 的简单工具,用于检查多个 IP 地址或域名上的常用 HTTPS/CDN 端口。它支持混合输入(IP 和域名),自动将域名解析为 IP 地址,并扫描 CDN 提供商(如 Cloudflare)常用的预定义端口列表。
该工具提供清晰的输出,指示哪些端口是开放的或关闭的,帮助用户快速识别可达的端点。
## 功能
- IP & 域名支持:接受 IP 地址和域名作为输入
- 自动 DNS 解析:将域名解析为一个或多个 IP 地址
- CDN 端口扫描:扫描常见的 HTTPS/CDN 端口
- 详细输出:
- 显示开放端口(✔)
- 显示关闭端口(✖)
- 分离成功和失败的目标
- 轻量级 & 快速:仅需 bash、nc 和 dig
## 快速开始
### 前置条件
- Linux / Unix 系统
- bash
- nc (netcat)
- dig (DNS 工具)
### 安装
1. 克隆仓库:
git clone https://github.com/seramo/sni-scanner.git
2. 进入项目目录:
cd sni-scanner
3. 使脚本可执行:
chmod +x sni-scanner.sh
## 用法
### 步骤 1:准备输入文件
创建一个名为 targets.txt 的文件:
```
104.19.229.21
example.com
google.com
```
### 步骤 2:运行扫描器
```
./sni-scanner.sh
```
或指定自定义文件:
```
./sni-scanner.sh my-targets.txt
```
## 扫描端口
443、2053、2083、2087、2096、8443
## 输出示例
```
=== OK (at least one open port) ===
example.com -> 104.19.229.21 -> 443✔ 2053✔ 2083✖ 2087✖ 2096✖ 8443✔
=== FAIL (all ports closed) ===
8.8.8.8 -> 8.8.8.8 -> 443✖ 2053✖ 2083✖ 2087✖ 2096✖ 8443✖
=== RESOLVE FAILED ===
bad-domain.test
```
## 注意事项
- 本工具仅执行基本的 TCP 端口检查
- 它**不**执行真实的 SNI 欺骗或 TLS 验证
- 结果可能因 CDN 行为和网络限制而有所不同
## 贡献
欢迎贡献和改进。随时提交 Pull Request。
标签:2053, 2083, 2087, 2096, 443, 8443, Bash工具, CDN探测, dig, DNS解析, HTTPS扫描, Linux工具, netcat, SNI探测, SSL端口, TCP连接, 二进制发布, 云存储安全, 应用安全, 开源工具, 开源项目, 数据统计, 目标探测, 端口扫描, 端口探测, 网络安全, 网络扫描, 轻量级安全工具, 隐私保护