检查数据库端口是否暴露在互联网上
在公网上有响应的数据库,是最常见的服务器错误之一。输入您的服务器地址,即可查看 MySQL(3306)、PostgreSQL(5432)或 Redis(6379)是否接受来自外部的连接。如果列表中没有出现它们,说明从这里无法访问到它们。
如何检测暴露的数据库
-
1
输入服务器地址
使用托管数据库的机器的公网主机名或 IP 地址。
-
2
运行扫描
点击“下一步”,然后点击“扫描常见端口”。
-
3
检查 3306、5432 和 6379
如果列出了其中任何一个,说明该服务接受来自互联网的连接。
-
4
修复不应公开的服务
将服务绑定到私有地址,或在防火墙中关闭该端口,然后重新扫描。
为什么暴露很重要
数据库和缓存的设计目的是供您自己的应用程序访问,而不是供陌生人访问。Redis 在默认配置下通常没有密码,而可访问的 MySQL 或 PostgreSQL 端口会招致密码猜测攻击。让这些端口远离公网,是一项基本的防范措施。
每个结果意味着什么
| 端口 | 服务 | 如果被列出 |
|---|---|---|
| 3306 | MySQL | 服务器接受来自互联网的 TCP 连接 |
| 5432 | PostgreSQL | 同样,请检查访问规则和绑定地址 |
| 6379 | Redis | 同样,请检查密码和私有绑定地址 |
端口开放并不意味着数据库没有保护。身份验证和主机规则仍可能拒绝登录。但它确实意味着该服务可以被访问,值得进一步检查。
常见修复方法
- 将数据库绑定到 localhost 或私有网络地址。
- 添加防火墙规则,仅允许您的应用服务器访问该端口。
- 对于云服务器,除了主机防火墙,还要检查安全组或网络 ACL。
- 再次扫描,确认该端口不再出现。
本检测的局限
只测试三个默认端口。使用自定义端口的数据库不会被发现。关闭、被过滤和无法访问的端口都会返回相同的空结果,因此扫描结果干净,只表示这些端口从这里接受连接的尝试未成功,仅此而已。请只扫描您拥有或管理的服务器。
有意暴露的情况
有些配置会有意暴露数据库,例如只接受允许列表中地址连接的托管服务,或供其他地区连接的副本。如果您的情况属于这类,那么本扫描中出现开放端口是符合预期的。需要确认的问题是允许列表是否真正限制了访问,确认方法是从允许列表之外的地址检查该端口的行为是否符合您的预期。
如果您并未打算暴露数据库,请将开放的数据库端口视为需要今天就修复的问题,然后检查数据库日志,查找来自您不认识的地址的连接尝试。
常见问题
不会。它只是对端口建立一个 TCP 连接,并报告该连接是否被接受。它不发送任何凭据,也不执行任何查询。
不能。只测试固定列表中的默认端口,因此其他端口上的数据库不会被检查。
不一定,因为身份验证和加密仍可能保护它。但暴露会扩大攻击面,所以大多数配置都会让这些端口保持私有。
防火墙可能只允许您办公室的地址。扫描来自另一个公网地址,因此它看到的是所有其他人看到的内容,这正是此检测的目的。
相关工具
域名转 IP
查询公共域名或网站网址返回的 A 和 AAAA 地址,查看 DNS 解析器返回的 IPv4 和 IPv6 地址,并复制所需地址。
服务器位置检查器
查询每个域名对应的物理数据中心、所在国家/地区、 ASN 及云服务提供商,可识别Cloudflare、Fastly、Akamai等 CDN 服务商。
DKIM 检查工具
输入域名和 DKIM 选择器,查看 DNS TXT 记录中的公钥、密钥类型,以及对缺失、已撤销或格式错误密钥的说明。
Ping 工具
从我们的服务器向公网主机的 80 端口发起四次 TCP 连接,查看各次连接耗时、成功连接统计及失败比例。
网站宕机检查器
从一台独立服务器检查网站是否有响应。显示 UP 或 DOWN 状态、HTTP 状态码、响应时间和服务器 IP,帮助你区分真正的故障和本地网络问题。
网站截图工具
输入任意公开网址,即刻查看截图预览,然后在 Screenshot Machine、Urlbox、ApiFlash 等免费服务中打开,或在 Wayback Machine 上浏览历史截图。
此工具还提供其他语言版本
- التحقق مما إذا كانت منافذ قواعد البيانات مكشوفة للإنترنت [AR]
- データベースのポートがインターネットに公開されていないか確認する [JA]
- Prüfen, ob Datenbank-Ports öffentlich im Internet erreichbar sind [DE]
- Kontrollera om databasportar är exponerade mot internet [SV]
- Verificar se as portas de banco de dados estão expostas à internet [PT]
- 데이터베이스 포트가 인터넷에 노출되어 있는지 확인하기 [KO]
- Vérifier si les ports de bases de données sont exposés sur Internet [FR]
- Controleren of databasepoorten blootgesteld zijn aan internet [NL]
- ตรวจสอบว่าพอร์ตฐานข้อมูลเปิดให้เข้าถึงจากอินเทอร์เน็ตหรือไม่ [TH]
- Kiểm tra xem cổng cơ sở dữ liệu có bị lộ ra internet không [VI]
- Comprobar si los puertos de bases de datos están expuestos a Internet [ES]
- Sprawdź, czy porty baz danych są wystawione do internetu [PL]
- Periksa apakah port database terekspos ke internet [ID]
- Проверка, открыты ли порты баз данных для интернета [RU]
- Veritabanı bağlantı noktaları internete açık mı kontrol edin [TR]
- Check if Database Ports Are Exposed to the Internet [EN]
- Verifica se le porte dei database sono esposte su Internet [IT]