服务器默认端口是每个服务安装后自动绑定的通信入口,Web服务的80/443端口、SSH远程管理的22端口、Windows远程桌面的3389端口、MySQL数据库的3306端口,这些固定编号就是业内通行的服务器默认端口,只要服务器在跑业务,这些端口就时刻待命,而黑客也最喜欢在这些端口上蹲守,所以搞清楚它们的用途和风险是运维的基本功。
服务器默认端口有哪些:一张表看清主流服务
你买了一台云服务器,装好系统后第一件事往往是部署环境,nginx装好,80端口就亮了;MySQL装好,3306端口就开了,这些端口不需要你手动指定,软件自动绑定,这就是“默认端口”的含义,下面按服务类型拆开说,这些都是日常用得最频繁的。
Web服务端口:80和443是门面
HTTP服务默认跑在80端口,HTTPS加密流量默认跑在443端口,行业共识认为,现在全站HTTPS已经是标配,443端口的使用率远超80端口。
- 80端口:明文HTTP流量,访问http://你的域名时会用到。
- 443端口:TLS加密流量,浏览器地址栏的小锁头全靠它。
- 8080/8000端口:Tomcat、Jenkins等Java系中间件常用,算半个默认端口。
如果你买了云服务器,安全组里不开放443端口,HTTPS证书装得再好也白搭,外部请求根本进不来。
远程管理端口:22和3389是运维的生命线
Linux服务器的SSH服务默认监听22端口,Windows服务器的远程桌面服务默认监听3389端口,这两个端口是运维人员每天都要打交道的入口。
- 22端口(SSH):Linux服务器管理主通道,支持密钥登录和密码登录。
- 3389端口(RDP):Windows服务器图形化远程桌面入口,点开“远程桌面连接”,输入IP就能连上。
绝大多数暴力破解攻击就集中在22和3389上,因为黑客拿到这两个端口就等于拿到服务器操作权,业内专家指出,不修改默认端口、不使用强密码的服务器,被扫描到的当天就可能被尝试登录数十次。
数据库服务端口:3306、1433、5432、6379
数据库端口不像Web端口那样必须对公网开放,但它们确实是默认端口的主力军。
| 数据库类型 | 默认端口 | 常见用途 |
|---|---|---|
| MySQL/MariaDB | 3306 | 中小型网站主力数据库 |
| SQL Server | 1433 | Windows生态常见 |
| PostgreSQL | 5432 | 复杂查询和高并发场景 |
| Redis | 6379 | 缓存服务,很多云数据库默认不开公网 |
这些端口在服务器配置对比里出现频率最高,如果你做等保测评或过等保二级,数据库端口是否对公网暴露是必查项。
邮件服务端口:25、110、143、465、587
邮件服务器涉及的默认端口比较多,自建邮箱系统时才用得全。
- 25端口(SMTP):发信端口,很多云厂商为了防垃圾邮件默认封禁,xxx
- 110端口(POP3):收信端口,明文传输,现在用得少了。
- 143端口(IMAP):收信端口,支持同步状态。
- 465/587端口:加密发信端口,现代邮件客户端的宠儿。
文件传输端口:21和20
FTP服务的控制连接用21端口,数据连接用20端口,虽然现在FTP已经算老古董,但很多IDC机房的服务器维护和网站备份还在用它,FTP的默认端口密码是明文传输,建议直接用SFTP(走22端口)替代,安全性高一个量级。
服务器端口怎么查:一条命令看清全部监听状态
很多新手买了服务器,装完环境后被提示“连接失败”,第一反应是防火墙没关,其实是端口没开,检查服务器端口使用情况,Linux和Windows有各自的门路。
Linux系统下用netstat或ss命令
在终端敲这条命令,马上能看到所有监听的端口:
netstat -tlnp
-t只看TCP连接,-l只显示监听状态,-n用数字显示端口,-p显示进程名。- 输出结果里,
0.0.0:22表示SSH在所有网卡上监听,0.0.1:3306表示MySQL只监听本机,外网连不上。
新版系统推荐用 ss 命令,效率和输出友好度都比netstat强:
ss -tlnp
如果看到某个端口被占据但不知道是谁占的,用 lsof -i:端口号 直接定位进程,lsof -i:3306 会直接告诉你是mysqld还是别的程序。
Windows系统下用netstat命令
Windows服务器在CMD或PowerShell里执行:
netstat -ano
-a显示所有连接和监听端口,-n不反解域名,-o显示进程PID。- 找到你关心的端口那一行,
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1234,然后打开任务管理器,按PID找到1234进程,就知道是谁占用了端口。
服务器端口被占用怎么办
端口被占用是最常见的排障场景,通常是两个服务抢同一个端口,解决办法很简单,换端口或杀进程:
- 想换端口:修改服务配置文件里
port参数,然后重启服务。 - 想杀进程:Linux用
kill -9 PID,Windows用taskkill /F /PID 1234。
要注意,改完端口后防火墙和云安全组也要同步改,不然新端口还是进不来。
服务器端口安全:默认端口不改的代价
默认端口最大的问题是“地球人都知道”,你开了22端口,全世界扫描器都知道这是SSH;你开了3389端口,勒索病毒优先爆破的就是它,只改端口号不加强认证,效果有限,但能直接过滤掉一大批无差别扫描。
哪些端口最容易招来攻击
近年来的安全通报反复提到一个规律:攻击流量高度集中在少数几个端口上。
- 22端口(SSH):暴力破解重灾区,每天都有大批扫描源在试探弱密码。
- 3389端口(RDP):勒索软件最常利用的入口,BlueKeep漏洞当年横扫全球就是最好的例子。
- 3306端口(MySQL):暴露到公网的数据库端口,容易被拖库。
- 6379端口(Redis):未授权访问漏洞曾经导致大量服务器被植入挖矿程序。
- 23端口(Telnet):明文传输的老牌高危端口,现在基本应该禁掉。
云服务器端口配置:安全组和防火墙双保险
国内服务器日常运维中,端口放行要过两道关:云厂商安全组和系统防火墙(iptables/firewalld),只要有一道闸门关着,外部流量就进不来。
云服务器端口配置的操作路径大致是:
- 登录云厂商控制台,找到“安全组”或“防火墙”入口。
- 添加入方向规则,指定端口号、协议类型(TCP/UDP)和源IP(建议只放行你的办公网IP)。
- 在服务器内用
firewall-cmd --list-ports(CentOS)或ufw status(Ubuntu)确认系统防火墙已放行。 - 修改服务配置,把默认端口换掉或保持默认,但务必使用强密码和密钥登录。
安全组配置里有个很容易忽略的点:源IP建议填写具体IP或IP段,不要用 0.0.0/0 代表所有IP,否则等于把端口裸奔在公网上,好多服务器被黑不是因为漏洞多高级,就是因为安全组把所有端口都向全网敞开了。
端口扫描自查:提前发现暴露面
运维老手喜欢用 nmap 对自己的服务器做一次端口扫描,就像出门前检查门窗有没有关好,一条命令:
nmap -sT -p 1-65535 你的服务器IP
扫描结果会列出所有开放的端口,看到上面提到的高危端口全裸奔在公网,赶紧去安全组收紧规则,如果服务器上有云监控产品(酷番云镜、简米云安骑士),控制台里通常也有“端口暴露面”的检查报告,照着它的建议改就行。
服务器端口相关常见问题解答
怎样区分一台服务器的端口是TCP还是UDP?
答:看服务协议本身,Web、SSH、数据库这类讲究可靠传输的服务基本都走TCP,DNS(53端口)、NTP(123端口)、视频通话这类允许丢包的服务走UDP,安全组配置时不确定就选TCP,大多数场景够用。
服务器端口开放会额外收费吗?
答:不会,端口开放是云服务器控制台的免费配置项,云厂商按带宽而非端口数量计费,国内服务器在简米云、酷番云安全组里放行任意端口都不产生费用,但要注意公网流量带宽会占用实例的固定带宽包,带宽跑满才会影响费用。
修改服务器默认端口后,会不会影响服务正常使用?
答:只要同步更新防火墙规则、安全组放行规则,并在连接方指定新端口号,端口修改不影响服务本身,例如把SSH从22改成2222,连接时用 ssh -p 2222 用户名@IP 即可,同云安全组放行2222端口,服务照常运行,仅修改服务配置而遗漏安全组和防火墙放行,是端口变更后连不上的头号原因。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/785660.html


