VPS 安全组端口怎么配置:65535 个端口,真正需要开放的只有几个

文章围绕 VPS 安全组端口配置展开,先解释 65535 个端口的由来与常见误区,指出普通网站只需对外开放 22、80、443 等必要端口,数据库、缓存等端口不应暴露公网;随后介绍安全组与系统防火墙的区别、全端口开放风险,并给出查询监听端口、删除全放行规则、限制来源 IP、启用 UFW/firewalld、误封 SSH 后如何恢复的具体步骤

VPS 安全组端口配置:65535 个端口中仅开放 22、80、443 等必要端口

VPS 老问题:端口被扫描,日志刷满陌生 IP

前几天一个朋友新买 VPS 还没正式跑业务,登录服务器就看到日志里全是陌生的连接尝试。我帮他把安全组打开看了一眼,几乎是“全部端口放行”的状态。很多新手拿到服务器,第一件事是考虑把网站或项目跑起来,端口规则往往被拖到出事之后再处理。

这篇文章先把结论放在前面:一台普通网站 VPS,真正需要对外开放的端口通常只有 22、80、443。数据库、缓存、后台管理这类端口,默认不应该让全网访问。下面会解释为什么,以及配错了之后怎么恢复。

端口是什么,为什么服务器有 65535 个

VPS 高风险端口限制:SSH、数据库端口仅允许白名单 IP 访问

把服务器想象成一栋楼,IP 地址是楼的门牌号,端口就是楼里的房间号。快递员知道门牌号还不够,还得知道收件人在几零几,否则没法把包裹送到对应的人手里。服务器上也一样,同一台机器可能同时运行网页服务、数据库、缓存、SSH 等多个程序,网络数据进来之后,系统要根据端口号判断应该交给哪个进程。

端口号的上限是 65535,这不是某家 VPS 厂商自己定的,而是网络协议的基础设定。端口号使用 16 位二进制数表示,16 位二进制能表示 0 到 65535,一共 65536 个数字;因为从 0 开始计数,所以最大端口号就是 65535。这个底层结构决定了端口范围,改不了,也没必要改。

新手常有一个误解:端口越多,服务器越强。实际上,65535 个端口只是可用的地址空间,不代表应该把它们全部填满。一台常规的网站 VPS,真正需要对外开放的端口通常只有三五个,其余端口保持关闭才是最安全的状态。这个认知比记住具体命令更重要。

VPS 安全组端口怎么配:哪些该开,哪些不该开

VPS 全端口开放风险:暴露攻击面,被自动化扫描探测

0 到 1023 范围内的端口一般被称为“知名端口”,用途比较固定,行业内基本约定俗成。平时管理 VPS 时,下面几个端口最常出现:

端口 服务 VPS 安全组建议
22 SSH 远程管理 公网可开,但建议限制来源 IP
21 FTP 文件传输 不推荐开放,明文传输,改用 SFTP
25 SMTP 邮件发送 多数机房默认封禁,开之前先确认机房策略
80 HTTP 网站访问 网站必需,对公网开放
443 HTTPS 网站访问 网站必需,对公网开放
3306 MySQL 数据库 不应对全网开放,仅限白名单或内网
5432 PostgreSQL 数据库 不应对全网开放,仅限白名单或内网
6379 Redis 缓存 默认不应暴露公网
465/587 加密邮件发送 按邮件服务需求开放

这里可以直接给一个结论:

  • 该开:22(需要远程管理时)、80、443(网站服务)。
  • 看情况开:邮件相关端口、游戏服务器端口、API 业务端口,以及用了非默认端口的服务。
  • 不该对全网开:3306、5432、6379,以及运维后台、控制面板端口。大多数项目并不需要外部直接访问这些端口,开了反而容易被人扫描和利用。

安全组是什么,和系统防火墙有什么不同

VPS 安全组与系统防火墙区别:安全组在外部,系统防火墙在内部

安全组是云服务商在虚拟网络层提供的访问控制,规则跑在虚拟机外部,相当于大楼门口的门禁。系统防火墙则是运行在服务器内部的一层防护,例如 UFW、firewalld、iptables。两者都在过滤流量,但位置和作用不太一样。

配置安全组时,你会看到入站规则和出站规则。入站规则决定外部哪些流量能到达你的端口,出站规则决定服务器向外访问的流量是否受限。大多数场景下,入站规则是重点。

有些人以为开了安全组就不用管系统防火墙,或者反过来只在系统里配置。比较稳的办法是两层都做:安全组负责粗粒度拦截,系统防火墙负责兜底。就算服务器内部某个服务意外监听并对外,系统防火墙也能挡住大部分连接。

全端口开放有多危险:被扫只是开始

把安全组设成“全部放行”,短期内确实省事。但公网上的自动化扫描是无差别的,它不会因为你是个小站就绕开。扫描程序一天到晚在全网探测开放端口,扫到 22 端口就尝试常见弱口令,扫到 3306 或 6379 就尝试未授权访问或已知漏洞。

端口本身没有好坏,问题在于端口后面挂着服务。对公网开放一个端口,意味着让全世界都能尝试连接这个服务。开放的端口越多,暴露的攻击面越大。等你看到日志里一片陌生 IP 再来收紧,其实已经晚了一些。

更常见的错误是数据库端口对全网开放。很多时候开发图省事,在安全组里加一条 3306 或 6379 对 0.0.0.0/0 放行,想着之后再来限制。等被扫描工具发现,事情就不可控了。如果你需要远程连接数据库,用 SSH 隧道或限定办公 IP 都更安全,别把数据库直接放到公网上。

配置安全组的具体步骤

把 VPS 安全组配置成“少而准”的状态,可以按下面的流程走。

第一步:先查清楚服务器当前监听了哪些端口

登录服务器后查看端口监听和对应进程:

ss -tlnp

也可以用:

netstat -tulpn

通过输出,你能看到 22、80、443 等端口分别由哪个进程监听。先把这些信息记录下来,判断哪些是业务必须的,哪些只是临时调试用。

第二步:删除全放行规则,默认拒绝入站

在云控制台里找到安全组或防火墙选项,查看入站规则是否包含 0.0.0.0/0 放行全部端口。如果是,先删掉这条规则,再按照业务需要添加端口:

  • 22:SSH 登录
  • 80:HTTP
  • 443:HTTPS

如果还有需要,再单独添加对应端口,不要图方便复制“全部放行”。

第三步:给高风险端口设置来源 IP 白名单

SSH、数据库、管理面板这类端口,尽量限制来源 IP。固定办公网络可以只允许公司出口 IP;经常换网络环境的,可以配合 fail2ban 控制系统层误试。数据库端口则建议完全不对公网开放,优先使用内网地址或 SSH 隧道。

如果你刚拿到 VPS,不知道还有哪些坑,可以先翻一下站里的《VPS 新手防坑指南》,里面列了不少新手常见的错误,比一个个踩过去省时间。

第四步:启用系统防火墙做兜底

以 Ubuntu 或 Debian 常见的 UFW 为例:

sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status numbered

CentOS 或 Rocky Linux 更常用 firewalld,命令不同,但思路一致。启用之后查看规则,确认必要端口已经放行,尤其是 22。如果误把 SSH 封住,连接会直接断掉。

第五步:修改 SSH 默认端口需谨慎

把 22 改成随机高位端口,能减少一部分自动化扫描的命中率,但不是必选项。修改前,先确认安全组和系统防火墙已经放行新端口;修改后,别忘了重载 SSH 服务。新旧端口交替期间,最好保持一个已有连接,避免把自己锁在门外。

第六步:避免明文协议

FTP、Telnet 这类明文协议,在现代服务器管理里应当被淘汰。文件传输使用 SFTP,远程管理使用 SSH。明文协议会让账号密码在网络中裸奔,没有任何必要。

不同用途 VPS 的端口开放对比

不同用途的 VPS,端口开放范围差别很大。下面是一份可以对照的清单:

使用场景 建议开放的入站端口 备注
静态博客或单页 22、80、443 数据库、缓存不用对公网开
WordPress 动态站 22、80、443 MySQL 只监听本地或固定 IP
前后端分离应用 22、80/443,前端端口 后端接口可走反向代理
自建邮件服务 25、465、587、110/143 先确认机房是否封 25 端口
游戏服务器 对应游戏端口 按官方文档开放,其余全部关闭
内网穿透/代理 按服务映射端口 不建议直接暴露管理端口

表格只是起点。每个项目差异不小,关键不是照抄某几个端口号,而是形成“默认关闭、按需开放、能限来源就限来源”的习惯。

配置完之后怎么验证端口是否生效

保存安全组规则不代表一切正常。你可以做几组简单检查:

  • 从本地浏览器访问网站,确认 80/443 能正常打开。
  • 用一台不在此白名单的设备,尝试连接 SSH 或数据库端口,预期结果是连接超时或被拒绝。
  • 使用在线端口扫描工具扫描公网 IP,确认暴露端口只有预期中的那几项。
  • 等一两天,再查看系统认证日志,确认没有来自陌生 IP 的成功登录记录。
tail -n 200 /var/log/auth.log

如果日志里仍然有扫描记录,不用太紧张。公网扫描是常态,不是配置失败。你需要区分的是“被尝试连接”和“被成功连接”,后者才意味着问题。

端口配错后的常见错误与恢复方案

端口配置很少一次到位。运气好只是网站打不开,运气差可能 SSH 也连不上。常见问题基本可以分成三类。

误封 22 端口,SSH 连不上怎么办

最常见的情况是在系统防火墙里执行了 sudo ufw deny 22/tcp,或者安全组入站规则里没有放行 22,然后当前 SSH 会话一断,就再也连不回去了。

恢复步骤:

  1. 登录云服务商控制台,找到“VNC”或“管理终端”入口,通过网页终端登录服务器。
  2. 用 VNC 登录后,检查 UFW 状态:sudo ufw status verbose。如果 22 被拒绝,执行 sudo ufw allow 22/tcp,然后 sudo systemctl restart sshsudo systemctl restart sshd
  3. 再去安全组页面确认入站规则里确实有 22 端口,来源 IP 是否包含你当前网络出口 IP。如果只允许了办公室 IP,而你现在在外面,连不上是很正常的。
  4. 确认无误后,再开一个新 SSH 会话测试,不要直接关掉 VNC 窗口。

改了安全组规则后所有端口都不通怎么办

这种情况通常是规则改得太多,或者误删了整个安全组。优先做这几步:

  1. 先确认服务器公网 IP 是否变化。有些控制台在重装或重置网络后会分配新 IP,旧的配置自然全部失效。
  2. 检查安全组是否还关联在当前实例上。有些面板删除规则时会连同关联关系一起处理。
  3. 通过 VNC 登录,暂时关闭系统防火墙做隔离测试:sudo ufw disable。如果端口通了,说明问题在防火墙规则;如果还是不通,问题大概率在安全组或网络层面。
  4. 测试完成后再把防火墙打开,并恢复只放行必要规则的配置,不要长期保持在 disable 状态。

排查顺序建议:安全组入站规则 → 系统防火墙 → 服务是否正在监听 → 本地网络或 ISP。按顺序检查通常能快速缩小范围。

网站端口开了但打不开怎么办

如果 80/443 已在安全组放行,但网站仍然打不开,先看服务监听地址:

ss -lntp | grep -E ':80|:443'

如果服务监听在 127.0.0.1,外部自然无法访问,需要修改配置为监听 0.0.0.0 或对应公网网卡。接着检查系统防火墙是否放行了 80/443,再检查域名解析、CDN 回源设置或云负载均衡是否放行。很多时候端口规则没问题,问题出在更上层。

安全组配置不是一次性的:行动与结论

端口规则和业务边界是绑定的。今天你可能只跑一个静态站,下个月加了数据库、缓存或 API 服务,端口就会多出来。反过来,如果某台 VPS 已经不再提供某些服务,对应的端口也应该顺手关掉。

建议每月或每季度花十分钟,重新看一下正在监听的端口和安全组规则,把不再使用的规则删掉。这个习惯比买更贵的防护方案实在得多。如果你刚入手 VPS,也可以参考站内另一篇《VPS 到手后必做的 7 项安全配置:从 SSH 加固到 Fail2Ban 实战》,把端口规则和系统加固一起做完。

回到开头的问题:一台 VPS 有 65535 个端口,但真正需要对外开放的只有几个。先把安全组里的“全部放行”删掉,只保留业务必需端口;再用系统防火墙兜底;最后做一次端口扫描验证。这套流程做完,你基本不会再因为端口问题被陌生 IP 反复骚扰。

文章里没有涉及具体商家的价格和套餐,各家控制台对安全组的入口、规则名称也可能不同,购买或调整前建议以官网为准。涉及限时优惠、库存或特价的,同样需要自行打开官方页面核实有效期,不要因为看到促销就以过期信息做决定。

原创文章,作者:WanKe,如若转载,请注明出处:https://wankewu.com/vps-review/2078.html

(0)
上一篇 9小时前

相关推荐