前几天有个朋友找我,说他新买的 VPS 被人扫描端口,日志里全是陌生 IP 的连接记录。
我看了一眼他的安全组配置,几乎处于“全端口开放”状态。这种情况在新手身上太常见了,很多人拿到 VPS 之后,第一反应是把网站跑起来,至于端口怎么开、要不要限制,没人细想。
可端口这东西,恰恰是服务器安全里最容易被忽视,又最容易出问题的一环。
服务器端口一共有 65535 个,这个数字是怎么来的?我们平常用的 80、443、22 这些端口又是干什么用的?VPS 安全组该怎么配置,才能既不影响正常使用,又能把风险挡在门外?
端口是什么,为什么有 65535 个
刚接触服务器那会儿,我也一直搞不明白端口是个什么东西。
你可以把一台服务器想象成一栋大楼,服务器的 IP 地址就是这栋楼的门牌号。但一栋楼里住着很多户人家,光有门牌号还不够,还得知道具体是几号房间,快递才能送到对的人手里。
端口,其实就是这个“房间号”。
同一台服务器上,可能同时跑着网站、数据库、邮件服务,好几个程序在同时工作。如果没有端口这个东西,数据包送到服务器门口,根本不知道该交给哪个程序处理。
所以端口的作用,就是给每一个正在运行的网络服务分配一个编号,让数据能找到对应程序。
为什么最大是 65535
这其实是计算机底层的一个规定,不是谁拍脑袋定的:
- 端口号在计算机里是用 16 位二进制数来表示的
- 16 位二进制能表示的数字范围是 0 到 65535,一共 65536 个数字
- 端口号从 0 开始算起,所以最大能用到的端口号就是 65535
底层的数据结构决定了这个上限,改不了,也没必要改。
端口多,不代表服务器要用完
我刚开始接触 VPS 的时候,一度以为端口越多就意味着服务器功能越强,但完全不是。
65535 个端口只是给你留了这么多“房间号”可以用,并不是说你要把每个房间都住满。实际上,一台 VPS 真正需要对外开放的端口就那几个,剩下的平时根本用不上,也不应该随便打开。
这也是为什么我一直跟朋友强调,端口这件事得先弄明白原理,再谈怎么配置安全组。
VPS 的常见端口有哪些?
搞懂了端口的原理,那么我的 VPS 上到底开了哪些端口,这些端口分别是干嘛用的?当你搞清楚后,再回头去看自己 VPS 的安全组配置,之前很多一头雾水的地方就明白了。
系统级端口(0-1023)
这个范围的端口一般叫“知名端口”,因为它们的用途基本是行业约定俗成的,几乎不会挪作他用。VPS 上比较常见的有这么几个:
- 22 端口:SSH 远程登录用的,你连自己 VPS 敲命令行,走的基本就是这个端口
- 80 端口:网站用 HTTP 协议访问时用的端口,浏览器输入网址默认走的就是它
- 443 端口:网站用 HTTPS 加密访问时用的端口,现在大部分网站都用这个
- 21 端口:FTP 文件传输用的,早些年上传网站文件常用,现在用得已经不多了
- 25 端口:邮件发送用的 SMTP 端口,不过很多海外机房会默认封掉,防止发垃圾邮件
这几个端口里,22、80、443 基本是每台 VPS 都绕不开的,尤其是 22 端口。
常见应用端口
除了系统级端口,日常搭建网站或者跑程序的时候,还会用到一批“约定俗成”的端口:
- 3306 端口:MySQL 数据库默认端口,很多网站后台数据都存在这里
- 5432 端口:PostgreSQL 数据库默认端口,用的人比 MySQL 少一些,但也不少见
- 6379 端口:Redis 缓存服务默认端口,网站做缓存加速经常会用到
- 8888、8080 这类端口:宝塔面板、1Panel 这类 VPS 管理面板经常会用作登录入口
- 465、587 端口:这两个是加密邮件发送常用的端口,比 25 端口更常见一些
我自己管理 VPS 的时候,习惯把这些端口列成一张表贴在笔记里,哪个服务对应哪个端口,一目了然。这样每次配置安全组的时候,我知道我要开的每一个端口都有明确的用途。
为什么弄清楚这些很重要
我见过不少人配置 VPS 的时候,图省事直接把安全组设成“全部放行”,理由是先跑起来再说。这种做法短期确实省事,但相当于把大楼所有房间的门都敞开着,谁都能进来看一眼。
等你搞清楚每个端口具体是干嘛用的,你就会发现,一台普通的网站 VPS,真正需要对外开放的端口其实就那么几个:22、80、443,可能再加一个数据库端口,仅此而已。
端口开放的风险到底在哪
前面提到我那个朋友的例子,他的 VPS 被扫描,其实就是端口管理没做好的一个典型情况。这一节我想具体聊聊,端口开多了,风险到底体现在什么地方。
每一个开放端口,都是一扇门
我经常跟朋友说,端口这个东西,你可以把它理解成大楼外墙上的一扇门。门关着,外面的人进不来;门开着,就有人可能会推门进来看看里面有什么。
服务器暴露在公网上,其实每时每刻都有各种扫描程序在互联网上“扫楼”,看看有哪些端口是开着的。这不是针对你个人,纯粹是自动化程序在批量扫,逮到一个算一个。
所以你的 VPS 只要开着一个没用的端口,早晚会被这些扫描程序发现。
端口暴露之后,可能会发生什么
发现开放端口只是第一步,真正的风险在后面:
- 暴力破解:如果你的 SSH 端口默认使用 22 端口,还是弱密码就有可能被人猜出密码
- 服务漏洞被利用:比如数据库端口暴露在公网,攻击者可能会通过已知漏洞入侵
- 被当成跳板:服务器一旦被攻破,很多时候不是为了你服务器里的数据,而是被用来当“肉鸡”,去攻击别的目标,这种情况在 VPS 圈里其实并不少见
- 资源被盗用:挖矿程序也是常见的一种,趁着端口漏洞悄悄跑进来,占用你的 CPU 资源
我自己刚开始用 VPS 的头一两年,也遇到过服务器莫名其妙 CPU 占用飙高的情况,查了半天日志,才发现是一个没关的端口被人利用,装了个挖矿程序在后台跑。
很多风险,其实是图省事埋下的
说实话,大部分端口安全问题,根源都不是技术有多复杂,而是当初配置的时候图省事。
VPS 默认的安全组规则往往比较宽松,有些商家更是默认开放了所有端口。如果你拿到手之后不做任何调整,相当于用了商家的默认门禁,而不是根据自己实际需要重新设置一遍。
这也是我一直建议朋友们,买了 VPS 先看看安全组里到底开了哪些端口,该关的关掉。
VPS 安全组该怎么配置
前面铺垫了这么多,终于说到重点了。这部分我把自己这些年配置 VPS 安全组的思路整理出来,尽量说得具体一点,你可以直接照着调整。
第一原则:只开必须的端口
配置安全组,我一直遵循一个很简单的思路:能不开的端口,坚决不开。
具体来说,一台普通的网站VPS,安全组里基本只需要放行这几类端口:
- 22 端口(SSH 远程管理,如果改了端口号,就放行你改后的那个)
- 80、443 端口(网站访问必需)
- 你实际用到的数据库端口,如果数据库不需要外部访问,那这个端口就不用对公网开放
除此之外的端口,没有明确用途的,一律关闭。很多人喜欢把安全组设置得很宽松,觉得“以防万一以后要用”,但我的经验是,等真正需要的时候再开,不要一开始就把门都敞开。
把 SSH 端口改成非标准端口
22 端口是 SSH 的默认端口,几乎所有扫描程序第一件事就是去试探这个端口。我自己的习惯是把 SSH 端口改成一个不常见的数字,这样能挡掉相当一部分自动化扫描和暴力破解的尝试。
这个操作不复杂,改完之后记得同步在安全组里放行新端口、关闭旧的 22 端口,不然容易出现改了端口但忘记开放,把自己也锁在外面的尴尬情况——这个坑我自己也踩过一次。
按来源 IP 限制访问,而不是对所有 IP 开放
安全组配置的时候,很多人只关注“开哪个端口”,却忽略了允许谁访问这个维度。
比如 SSH 端口,如果你办公和登录的 IP 相对固定,完全可以在安全组里只放行你自己的 IP 段,而不是对全网开放。这样即便端口本身是开着的,别人也连不上,相当于加了一道门禁。
数据库端口更是应该这样处理,除非有特殊需求,否则数据库端口最好完全不对公网开放。
善用安全组的白名单机制
大部分 VPS 商家的控制台都提供安全组功能,可以理解成一套规则列表,规定了哪个端口、哪些IP、允许什么方向的流量。配置的核心思路就是:默认拒绝一切,只放行明确需要的。
这跟很多人习惯的默认全开正好相反,但从安全角度看才是更稳妥的做法。
简单管理,可以用可视化面板
如果你觉得手动配置安全组规则、记各种端口用途比较麻烦,可以使用可视化面板。
例如 1Panel,它把防火墙和端口管理做成了图形化界面,你不用记命令,也不用一条条对着敲,哪个端口对应哪个服务、当前开放状态是什么,界面上都能看得很清楚。

不过面板终归是工具,要开放哪些端口、怎么限制这些问题还是得自己搞清楚。
我管理 VPS 端口的一些习惯
聊了这么多理论,最后落到实际操作上:VPS 安全组该怎么配置。接下来我把自己这些年摸索出来、一直在用的几条习惯分享给你,供你参考。
除了 80、443,其他端口我都会自定义
这是我自己坚持了很多年的一个习惯:网站对外访问必须走 80、443 端口,这个没得改,改了反而让用户没法正常访问。但除了这两个之外,其他所有服务的端口,我基本都会改成非默认值。
SSH 改端口前面提过了。数据库、面板登录、Redis 这些,只要不是必须用默认端口才能正常工作的服务,我都会手动改成一个自己定的数字。可以规避一些扫描程序和攻击脚本
虽然不能说绝对安全,但确实能把风险降低不少。
我自己会准备一份端口对照表,记录每台 VPS 上各个服务改成了什么端口,避免自己过段时间也忘了。这个习惯看起来麻烦,但配置一次之后基本不用再动,长期看是很划算的。
定期检查开放端口
我一般会隔一段时间,登录 VPS 看一眼当前开放的端口列表,确认都是我自己主动配置的。这个动作花不了几分钟,但能帮你及时发现一些自己忘记关闭,或者被恶意程序偷偷打开的端口。
新装的服务,先关着测试,确认没问题再开放
每次在 VPS 上装新服务,我习惯先在安全组里保持这个端口关闭状态,本机或者内网测试没问题之后,再根据实际需要决定要不要对外开放,以及开放给谁。
这样能避免一装完服务就习惯性地把端口全开的情况。
写在最后
端口这件事,说复杂也复杂,说简单其实也就那么几个思路:搞清楚每个端口是干什么用的,只开放真正需要的,能改默认值的尽量改掉,能限制访问来源的就别对全网开放。
开头提到的那个朋友,后来我帮他把安全组重新配置了一遍,SSH 端口改掉,数据库端口收回到只允许内网访问,其他用不上的端口全部关闭。折腾完之后他自己也说,比预想中简单。
如果你也是刚接触 VPS 没多久,不妨现在就去自己的控制台看一眼安全组里到底开着哪些端口。如果发现几个自己都不记得为什么开着的端口,顺手关掉,就是最简单也最有效的第一步。
常见问题解答(FAQ)
Q1:端口号真的最大只能是 65535 吗,有没有例外?
是的,这是 TCP/IP 协议底层规定的,16 位二进制数能表示的最大值就是 65535。不管是哪个操作系统、哪家 VPS 服务商,端口范围都是 0 到 65535 这个区间。
Q2:VPS 默认开放的端口安全吗,需要马上改吗?
不同商家给的默认安全组规则松紧程度不一样,有些相对保守,只开了必要的几个端口;有些为了新手方便,默认开得比较宽松。所以建议拿到 VPS 做一次安全检测和调整。
Q3:改了 SSH 端口之后,之前的连接方式还能用吗?
改端口之后,原来 22 端口的连接方式就不能用了,需要在连接 VPS 的时候把端口号改成你设置的新端口。这里要提醒一句,改完端口一定要先在安全组里放行新端口。
Q4:数据库端口一定不能对外开放吗?
如果数据库只是给本机的网站程序调用,并不需要从外部直接连接,就没必要对公网开放,只允许本机或者内网访问就够了。如果你需要远程连接,建议只放行自己固定的 IP。
Q5:用 1Panel 这类面板管理端口,安全性会打折扣吗?
不会。这类可视化面板本质上还是在调用系统底层的防火墙规则,只是把操作界面做得更直观,方便你查看和修改。怎么管理还是由你决定,安全性跟手动配置命令行是一样的。
Q6:端口全部关闭是不是最安全的做法?
不是。端口本身是为了让服务正常对外提供访问,全部关闭意味着网站也打不开、SSH 也连不上,服务器等于没法用了。所以我们需要做的是按需开放端口。









