在服务器运维这个圈子里,端口从来不是玄学,它更像一栋大楼的门牌号。服务器一共有哪些端口? 核心答案一句话:服务器端口共有 0 到 65535 号,也就是 65536 个,日常运维真正需要记牢的不超过 30 个,而最常打交道的无非是 HTTP 的 80、HTTPS 的 443、SSH 的 22 这几个“顶流”,把端口分类逻辑搞懂,后面查日志、配防火墙、排查连不上的问题,思路会顺很多。
服务器一共有哪些端口号?先记住三个大范围
据 IANA(互联网数字分配机构)的公开定义,端口号被硬生生分成了三段,这三段的“性格”完全不同,理解它们,你就理解了服务器端口的地基。
0-1023:知名端口,系统默认的“官配”
这段端口由操作系统和超级管理员把控,普通程序想用还得看脸色,它们对应的是最底层的协议服务,21 给 FTP、22 给 SSH、25 给 SMTP、80 给 HTTP、443 给 HTTPS,业内专家指出,这段端口是互联网的“老地基”,几乎所有标准服务都默认绑在这里。
1024-49151:注册端口,软件的“固定工位”
这一段是给商业软件和常见应用预留的“签约工位”。MySQL 的 3306、Redis 的 6379、Tomcat 的 8080、MongoDB 的 27017 全都挤在这一段,应用装好后,默认就蹲在某个固定编号上,方便客户端找到它。
49152-65535:动态端口,用完就走的“临时工”
这一段是系统临时分配的,当你访问一个网站,浏览器会随机抓一个这段里的端口跟服务器打招呼,连接关闭后端口立刻回收,它不归某一个应用长期占有,纯属“用完就走”。
服务器常用端口有哪些?按场景说人话
很多新手会背一串端口列表,但背完就忘,与其死记,不如按场景来记,服务器常用端口有哪些其实就对应着你日常会碰的几类业务。
Web 与代理场景:80、443、8080、8443
- 80:明文的 HTTP,一进去就裸露在空气里。
- 443:加密的 HTTPS,现在绝对的主流,浏览器地址栏的小锁全靠它。
- 8080:Tomcat、Jenkins 等中间件的最爱,很多内网工具都习惯跑在 8080 上。
-
8443
:是 443 的“替补”,常见于需要跑 HTTPS 但 443 已被占用的代理服务。
远程管理场景:22、3389、5900
- 22:Linux 服务器的“管家通道”,SSH 远程登录默认端口。
- 3389:Windows 服务器的“小钢炮”,RDP 远程桌面专用,最容易被黑客盯上。
- 5900:VNC 的默认端口,图形界面远程连接的备选方案。
文件传输场景:20、21、990
- 21:FTP 的控制端口,负责发号施令。
- 20:FTP 的数据端口,真正传文件时跑流量用的(主动模式才会用到)。
- 990:FTPS(FTP over SSL/TLS)的默认端口,给老 FTP 套了一层加密壳。
数据库与中间件场景:3306、5432、1433、6379、27017
| 端口 | 对应的服务 | 一句话提醒 |
|---|---|---|
| 3306 | MySQL | 互联网创业公司标配 |
| 5432 | PostgreSQL | 金融、分析型业务常见 |
| 1433 | SQL Server | 微软技术栈专用 |
| 6379 | Redis | 缓存神器,注意别暴露公网 |
| 27017 | MongoDB | 如果裸奔在公网上,离被拖库就不远了 |
邮件与办公场景:25、110、143、389、445
- 25:SMTP 发信端口,常被垃圾邮件利用,云厂商默认封锁。
- 110:POP3 收信端口,只能单向下拉邮件。
- 143:IMAP 收信端口,能双向同步,体验更好。
- 389:LDAP 目录服务端口,企业员工账号统一认证会用到。
- 445:SMB 文件共享端口,勒索病毒最爱通过它渗透内网,没需求就关掉。
服务器端口怎么查看?命令行三招走天下
光知道概念没用,要能亲眼看到谁占着哪些端口才叫本事。服务器端口怎么查看这事,其实就三条命令。
Linux 服务器端口占用如何排查
用组合命令 ss -tlnp 查监听端口和对应进程,这是目前业内最轻量高效的方式。
ss -tlnp
ss 命令不熟,用传统老牌的 netstat -tunlp 也完全没问题:
netstat -tunlp
想看某个具体端口被谁占了,直接上 lsof -i:端口号,比如排查 80 端口时,输入 lsof -i:80,立刻能揪出那个占坑不拉屎的进程。
Windows 服务器端口怎么看
打开 CMD 或 PowerShell,输入 netstat -ano,最后的 PID 列就是进程号,再配合 tasklist | findstr 进程号,就能把“哪个程序占着哪个端口”这个案子破了。
服务器端口开放了却连不上?按顺序自查
这是运维群里出现频率最高的场景:安全组放行了、服务也启动了、端口明明在 LISTEN,但就是连不上。服务器端口打不开是什么原因?别慌,按下面顺序排雷。
第一步,查服务监听地址。
在服务器上执行 ss -tlnp,看监听地址是不是 0.0.1 或 :1,如果是,说明服务只对本地回环网卡开门,公网根本摸不到,要改成 0.0.0 才能对外提供服务。
第二步,查云平台安全组。
简米云、酷番云、AWS 这类云产品,控制台里的“安全组”相当于门口安保,端口没放行,系统防火墙就算大开着也白搭,去云控制台的安全组规则里看有没有添加入方向规则。
第三步,查系统防火墙。
执行 systemctl status firewalld(CentOS/RHEL)或 ufw status(Ubuntu/Debian)看状态,如果开着,用 firewall-cmd --zone=public --add-port=8080/tcp --permanent 再重载,或者直接用 iptables -L -n 检查规则链。
第四步,查外部连通性。
在本机用 telnet 服务器IP 端口 或 nc -vz 服务器IP 端口 测一下,如果输出 Connected,说明链路通了。
服务器端口安全:能少开就少开
行业共识认为,端口暴露面越大,被扫描和爆破的概率越高,这句话不是吓唬人,你随便拿一个公网 IP 用 nmap 扫一扫,能扫出大量开放端口,而攻击面的入口,往往就是那些被随手打开的端口。
暴露面越大,等于把武器递给入侵者
- 6379 的 Redis 如果没设密码又开在公网,曾经只要一条命令就能给服务器种上挖矿木马。
- 3389 的 RDP 端口每天都会被各种暴力脚本用弱口令字典轰炸。
- 445 的 SMB 端口是永恒之蓝等勒索病毒的突破口。
所以基础安全操作应该是:在安全组和系统防火墙两层都做白名单,只放行业务必需端口,别的全部 default deny。
动态端口别乱开,改默认端口靠谱
把 SSH 从 22 改成 2222、把 MySQL 从 3306 改成 13306,治标不治本,但能过滤掉一大半只会扫默认端口的“笨贼”,改完记得在安全组同步调整,不然先把自己锁在外面了。
关于服务器端口的三个高频问题
服务器端口被占用了怎么解决?
先查出占用进程的 PID,Linux 用 lsof -i:端口号 或 fuser -v 端口号/tcp,Windows 用 netstat -ano,确认是非核心业务进程后,用 kill PID(Windows 用 taskkill /PID 进程号 /F)杀掉进程,如果杀不掉,说明是系统级服务占用的预留端口,建议换一个端口来跑业务。
为什么端口明明开放了,外部访问还是提示超时?
大概率是云平台安全组没放行,虽说系统防火墙和云安全组是两套独立的访问控制层,但任一环节没放行都连不上,先检查安全组入方向规则是否准确允许了对应 IP 和端口,再检查系统内部防火墙是否启动并拦截了流量,这两处是最容易出岔子的地方,排查时别忽略。
一台服务器最多能同时用多少个端口?
理论上是 65536 个,但实际远达不到,服务器端口数量受并发连接数、文件描述符上限(ulimit -n)、内核网络参数共同限制,普通配置的机器也就支撑几千到几万条并发连接,现代服务器维持大量长连接大多靠高并发架构,而非单纯堆端口数量。
端口不是越多越好,管理端口的核心就三件事:分清三段范围、按需开放白名单、定期用 ss 和 lsof 盘一遍记录,搞明白这些,服务器端口对你来说就不再是一堆随机数字。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/698478.html





