服务器被扫爆才发现端口开太多?一文教你检查公网暴露端口

很多服务器被攻击,并不是因为系统本身有多复杂的漏洞,而是因为“不该开放的端口暴露在了公网”。例如数据库端口、Redis 端口、后台管理端口、远程登录端口,如果没有限制访问来源,就等于把服务器的入口直接摆在互联网上。
对于使用香港服务器部署企业官网、业务后台、API 接口或跨境业务系统的用户来说,端口检查是一项非常基础但很关键的安全工作。它不需要很高的技术门槛,但必须定期做、认真做。本文就围绕“服务器哪些端口暴露在公网”这个问题,讲清楚开放端口的判断方法、常见风险端口,以及如何做基础加固。
一、什么是“端口暴露在公网”?
服务器上的服务通常通过端口对外提供访问。例如网站访问常用 80 和 443 端口,SSH 远程登录常用 22 端口,Windows 远程桌面常用 3389 端口。
所谓“端口暴露在公网”,简单理解就是:外部网络中的任何人,都有机会连接到这个端口。
这里要特别注意一个区别:服务器本机监听了某个端口,不一定代表公网可以访问;公网能访问某个端口,也不一定代表这个端口是安全的。
比如 MySQL 监听了 3306 端口,如果它只绑定在 127.0.0.1,外部用户通常访问不到;但如果它绑定在 0.0.0.0,同时防火墙又放行了 3306,那么公网就可能直接访问数据库端口,这种风险就很高。
二、适合用什么服务器做端口管理示例?
以 A5IDC 香港三网配置一为例,这类配置采用 E3-1245V3 处理器、16GB 内存、240G SSD、30M CN2/CMIN2/CU 线路,并配备 1 个公网 IP,常见用途包括企业官网、WordPress 博客、小型后台管理系统、轻量 API 服务等。
这类业务有一个共同特点:公网入口通常不复杂,真正需要开放的端口并不多。正常情况下,网站只需要开放 80、443;远程管理端口只允许管理员固定 IP 访问;数据库、缓存、内部接口都不应该直接暴露到公网。
也就是说,对于中小型业务来说,端口安全的核心不是“开得越多越方便”,而是“只开放业务真正需要的端口”。
三、常见端口分别代表什么?
网站访问常见端口是 80 和 443。80 用于 HTTP,443 用于 HTTPS。对于正式网站来说,建议将 80 用于跳转到 443,实际访问尽量走 HTTPS。
Linux 远程管理常见端口是 22,也就是 SSH。这个端口经常被扫描和暴力破解,如果直接暴露在公网,建议至少修改默认端口、关闭密码登录、使用密钥登录,并限制来源 IP。
Windows 远程桌面常见端口是 3389。这个端口同样是高风险端口,不建议长期对全网开放。如果必须使用,应限制固定 IP 访问,并设置复杂密码和登录失败锁定策略。
数据库端口包括 MySQL 的 3306、PostgreSQL 的 5432、SQL Server 的 1433、MongoDB 的 27017。这类端口通常不应该直接暴露公网,除非有非常明确的安全策略,例如专线、VPN、白名单或加密认证。
缓存和中间件端口也要重点关注,例如 Redis 的 6379、Elasticsearch 的 9200、RabbitMQ 的 5672、Kafka 的 9092。这些服务一旦被公网访问,轻则数据泄露,重则被写入恶意任务或拖垮系统。
后台和测试服务常见端口包括 8080、8888、9000、5000、3000 等。很多开发框架、管理面板、测试接口会使用这些端口,如果上线后没有关闭,很容易成为隐藏风险点。
四、如何在服务器本机查看正在监听的端口?
在 Linux 服务器上,可以使用以下命令查看当前监听端口:
ss -tulnp
其中,-t 表示 TCP,-u 表示 UDP,-l 表示监听状态,-n 表示直接显示端口数字,-p 表示显示对应进程。
如果看到类似下面的结果:
LISTEN 0 128 0.0.0.0:22
LISTEN 0 511 0.0.0.0:80
LISTEN 0 511 0.0.0.0:443
LISTEN 0 80 127.0.0.1:3306
可以这样理解:
22、80、443 监听在 0.0.0.0,代表它们可能接受外部连接;3306 监听在 127.0.0.1,通常只允许本机访问,相对更安全。
如果服务器上没有 ss 命令,也可以使用:
netstat -tulnp
或者查看某个端口被哪个程序占用:
lsof -i:3306
这些命令适合判断“服务器内部有哪些服务正在运行”,但还不能完全代表公网是否能访问。
五、如何从公网角度检查开放端口?
最可靠的方法,是从服务器外部进行扫描。因为公网访问结果才是真正的暴露面。
可以在另一台服务器、本地电脑或安全测试环境中使用 nmap 检查:
nmap -Pn 服务器公网IP
如果只想检查常见端口,可以使用:
nmap -Pn -p 22,80,443,3306,6379,8080,3389 服务器公网IP
如果返回结果显示某个端口为 open,说明该端口从公网可以访问。如果显示 closed,说明目标主机拒绝连接。如果显示 filtered,通常代表被防火墙过滤或没有响应。
例如:
22/tcp open ssh
80/tcp open http
443/tcp open https
3306/tcp filtered mysql
6379/tcp closed redis
这个结果表示网站端口正常开放,SSH 可以访问,MySQL 被过滤,Redis 未开放。对于普通网站服务器来说,这种状态相对合理。
需要注意,端口扫描应只对自己的服务器进行,不要随意扫描他人服务器或大范围 IP 段,避免引发安全和合规问题。
六、开放端口检查不能只看“开没开”
很多新手只看端口是否开放,但真正的安全判断还要看三个问题。
第一,这个端口是否有业务必要?例如 80、443 对网站来说是必要端口,但 3306、6379 对普通公网访问来说通常不是必要端口。
第二,这个端口是否限制了访问来源?例如 SSH 可以开放,但最好只允许公司固定 IP、运维 IP 或 VPN 网段访问,而不是对所有公网 IP 开放。
第三,端口背后的服务是否做好了认证和更新?即使端口必须开放,也要保证服务版本没有严重漏洞,密码足够复杂,访问日志可追踪。
所以,端口安全不是简单地“全部关闭”,而是根据业务需要进行最小化开放。
七、Linux 防火墙基础检查方法
如果服务器使用 firewalld,可以查看当前放行规则:
firewall-cmd --list-all
开放 HTTPS 端口示例:
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
关闭不必要端口示例:
firewall-cmd --permanent --remove-port=3306/tcp
firewall-cmd --reload
如果使用 UFW,可以查看状态:
ufw status
只允许 80 和 443:
ufw allow 80/tcp
ufw allow 443/tcp
限制 SSH 只允许指定 IP 访问:
ufw allow from 管理员IP to any port 22
如果使用 iptables,则可以查看当前规则:
iptables -L -n -v
不同系统和面板环境可能会同时存在多层防火墙,例如系统防火墙、宝塔面板防火墙、应用自身访问控制等。排查时要逐层确认,不能只看其中一处。
八、哪些端口建议不要直接暴露公网?
数据库端口不建议直接暴露公网,例如 3306、5432、1433、27017。数据库应优先通过内网、本机、VPN 或白名单访问。
缓存端口不建议暴露公网,例如 Redis 6379、Memcached 11211。这类服务如果配置不当,风险非常高。
管理面板端口要谨慎开放,例如 8888、8080、8443、10000 等。建议修改默认端口、开启登录验证、限制访问 IP,并定期查看登录日志。
远程登录端口要做访问限制,例如 22、3389。它们可以开放,但不建议对全网长期裸露。
测试服务端口上线后应及时关闭,例如 3000、5000、7001、9000 等。这些端口常见于开发框架、临时服务、调试工具,容易被忽略。
九、一个实用的端口检查流程
对于一台新上线的香港服务器,可以按以下流程检查:
先在服务器本机执行 ss -tulnp,确认有哪些程序正在监听端口。
再从外部执行 nmap -Pn 服务器公网IP,确认公网真正能访问哪些端口。
接着对照业务需求,只保留必要端口。例如企业官网一般保留 80、443;SSH 只对固定 IP 开放;数据库只允许本机或内网访问。
然后检查防火墙规则,确认关闭不必要的公网入口。
最后查看登录日志和服务日志,确认是否存在异常扫描、暴力尝试或未知访问来源。
这个流程不复杂,但建议在服务器上线前、业务调整后、安装新服务后都执行一次。很多风险不是一开始就存在,而是在后续安装面板、数据库、缓存、测试程序时被无意打开的。
十、A5IDC 场景下的建议做法
对于部署在 A5IDC 香港服务器上的企业官网、跨境业务站点、后台系统或 API 服务,建议采用“公网入口简化、内部服务隔离、管理端口白名单”的思路。
以企业官网为例,公网只需要开放 80 和 443;如果使用 SSH 管理,建议限制固定 IP;MySQL、Redis、后台接口尽量只允许本机或内网访问。这样既不会影响正常访问,也能明显降低被扫描和被攻击的概率。
如果是多个业务站点部署在同一台服务器上,还可以通过 Nginx 统一入口,把不同域名转发到不同应用端口。外部只暴露 80 和 443,内部应用监听 127.0.0.1 的 3000、8000、9000 等端口,这样安全性和管理性都会更好。
结语
开放端口检查,是服务器安全中最基础、也最容易被忽略的一步。很多时候,服务器并不是因为配置太差才出问题,而是因为无意间把数据库、缓存、管理面板或测试服务暴露到了公网。
对于普通企业网站和轻量业务系统来说,最安全的原则就是:公网只开放必须访问的端口,管理入口限制来源,数据库和内部服务不直接暴露公网。定期检查端口、清理无用服务、完善防火墙规则,才能让服务器在长期运行中更稳定、更安全。