作为一个长期维护多台 VPS 的开发者,我一直被一个问题困扰:
服务器上跑着一堆服务,Gradio、Streamlit、各种 API、数据库管理面板……全都是 0.0.0.0 监听,全都没有认证,全都裸奔在公网上。
你可能也遇到过:
- 半夜收到告警,发现 Redis 被人写入了挖矿脚本
- 部署了个 Jupyter Notebook 忘了设密码,第二天发现被人跑了恶意代码
- Gradio demo 给客户看一下,结果被扫描器发现了,数据全泄露
- 想给某个端口加个认证,发现要改代码、配 Nginx、搞证书……算了,先裸着吧
这个"先裸着吧"的心态,几乎害了所有人。
现有方案都差点意思
我试过市面上能找到的方案:
Fail2Ban —— 只管 SSH,管不了别的
Fail2Ban 很好,但它只解决 SSH 暴力破解的问题。你的 8080 端口跑着的 API、3000 端口的后台面板,它完全不管。
宝塔面板 / 1Panel —— 太重了
动辄 500MB-2GB 内存,我 1核1G 的小鸡根本跑不动。而且宝塔历史上出过多次高危 RCE 漏洞,装个安全工具反而增加了攻击面,属实是装了个寂寞。
Cloudflare Tunnel —— 必须有域名
没域名的服务器直接用不了。而且很多内部服务(数据库、消息队列)走不了 HTTP 隧道。
Wazuh —— 企业级,4GB 起步
功能确实强,但 4GB 内存起步,配置复杂到让人想哭。我就一两台小 VPS,用不着这么重的方案。
CrowdSec —— 需要额外配 Bouncer
社区威胁情报是亮点,但它本身不提供 Web 看板(只有云端 Console),也不能给端口加认证。
总结一下:要么太简单只管 SSH,要么太重跑不动,要么需要域名,要么不能给端口加认证。
在 Fail2Ban(太简单)和 Wazuh(太重)之间,居然是一片空白。
所以我做了 SecGate
SecGate 就是填补这个空白的。
一条命令装完,120MB 内存,1核1G 小鸡也能跑。但它能做到:
1. 给任意端口加认证(核心卖点)
这是我调研了 18 个竞品后确认的独有能力:7 个面板 + 7 个安全工具 + 4 个云方案,没有一个能做到。
原理很简单但很巧妙:iptables 重定向 + Nginx auth_request。
比如你的 8501 端口跑着 Streamlit,SecGate 做的事情是:
外部请求 :8501 → iptables 劫持到 :28501 → Nginx auth_request 验证 Token
→ 通过 → 透传到真实 :8501
→ 拒绝 → 弹出登录页
后端服务零代码修改。不管你跑的是什么,Python、Go、Node、Java,甚至是个二进制程序,都能加认证。
在 Web 页面上点一下"保护此端口"就行了。批量保护所有未保护端口?也是一键的事。
2. 不只是防 SSH,是全方位态势感知
SecGate 有一个四维度攻击态势评分(0-100 分):
- SSH 暴力破解 — 谁在猜你的密码
- 端口扫描 — 谁在扫你的端口
- Web 异常请求 — 谁在探测你的 Web 服务
- 防御效果 — 你挡住了多少
不用看日志,不用记命令,打开看板扫一眼分数就知道服务器安全不安全。
3. 内置 5 个漏洞扫描器
不是调用外部 API,是真的内置在本地跑的:
| 扫描器 | 干什么的 |
|---|---|
| SCA 依赖扫描 | 你的 requirements.txt / package.json 里有没有已知漏洞的包 |
| 敏感信息检测 | 代码里有没有写死 AWS Key、数据库密码之类的 |
| 输入验证测试 | 你的 API 能不能被 SQL 注入、XSS |
| 对外连接检测 | Redis、MongoDB 有没有裸奔在公网 |
| Web 安全检测 | HTTPS 证书对不对、安全头全不全 |
4. AI 安全助手
用自然语言问问题,AI 帮你分析:
"最近有没有异常的 SSH 登录?" "哪些端口还没被保护?" "帮我检查一下 Nginx 配置有没有问题"
它会自动执行命令、分析输出、给你建议。只读权限,不会乱改配置。
5. 多节点管理
如果你有多台服务器,可以在一个看板里管理所有节点。通过 SSH 连接,自动检测每台服务器上 SecGate 的安装状态和运行端口。
6. 8 条自动告警规则
装完就自动跑,不用配置:
- SSH 密码登录还开着?提醒你
- 新端口暴露了没加保护?提醒你
- 从没见过的 IP 登录成功了?提醒你
- 1 小时内 100 次登录失败?紧急告警
- 磁盘快满了?告诉你
和竞品的硬对比
| Fail2Ban | CrowdSec | SecGate | 宝塔/1Panel | Wazuh | |
|---|---|---|---|---|---|
| 内存占用 | <50 MB | ~100 MB | ~120 MB | 500MB-2GB | 4GB+ |
| 给任意端口加认证 | ❌ | ❌ | ✅ | ❌ | ❌ |
| Web 安全看板 | ❌ | 云端 | 本地 | ✅ | ✅ |
| 漏洞扫描 | ❌ | ❌ | 5 个内置 | ❌/付费 | ✅ |
| AI 安全助手 | ❌ | ❌ | ✅ | ❌ | ❌ |
| 攻击态势评分 | ❌ | ✅ | ✅ | ❌ | ✅ |
| 纯 IP 可用(不要域名) | ✅ | ✅ | ✅ | ✅ | ✅ |
| 1核1G 能跑 | ✅ | 勉强 | ✅ | ❌ | ❌ |
| 一键部署 | ✅ | 要配 Bouncer | ✅ | ✅ | ❌ |
谁适合用
- 个人开发者:VPS 上跑着各种服务,不想学复杂的安全配置
- AI 应用部署者:Gradio / Streamlit / Chainlit 默认没认证,一键加保护
- 多服务部署:数据库、API、管理后台,统一网关认证保护
- 临时环境:比赛、演示、POC,几分钟装好就有防护
装一下试试
curl -fsSL https://github.com/zzmlb/secgate/releases/latest/download/install.sh | sudo bash
装完访问 http://你的IP:5000,终端会输出登录密码。
安装包只有 170KB,运行内存约 120MB,1核1G VPS 也能流畅运行。
不满意?一键卸载干净:
sudo secgate uninstall
GitHub 仓库:github.com/zzmlb/secga…
MIT 开源,完全免费。欢迎 Star 和提 Issue。
如果你也被服务器裸奔的问题困扰过,试试看,也许就是你一直在找的那个工具。