在CentOS系统中,TCP端口是网络通信的核心,正确配置和管理端口对于系统安全与服务运行至关重要,以下从常用端口分类、配置方法及安全防护三个方面进行详细说明。

常见服务默认端口
CentOS系统中,各类服务默认监听特定的TCP端口,了解这些端口有助于排查网络问题和配置防火墙,以下是部分常用服务的默认端口及用途:
| 服务名称 | 默认端口 | 主要用途 | 协议 | 
|---|---|---|---|
| HTTP | 80 | 网页服务 | TCP | 
| HTTPS | 443 | 加密网页服务 | TCP | 
| SSH | 22 | 安全远程登录 | TCP | 
| FTP | 21 | 文件传输控制 | TCP | 
| SFTP/SSH | 22 | 安全文件传输 | TCP | 
| MySQL | 3306 | 数据库服务 | TCP | 
| PostgreSQL | 5432 | 数据库服务 | TCP | 
| Redis | 6379 | 内存数据库缓存 | TCP | 
| MongoDB | 27017 | NoSQL数据库 | TCP | 
| SMTP | 25 | 邮件发送 | TCP | 
| IMAP | 143 | 邮件接收 | TCP | 
| POP3 | 110 | 邮件接收 | TCP | 
端口管理命令
- 
查看端口监听状态
使用netstat或ss命令可查看当前系统端口监听情况:netstat -tulnp | grep :80 # 查看80端口是否被占用 ss -tulnp | grep :22 # 使用ss命令查看22端口状态
-t:显示TCP端口-u:显示UDP端口-l:仅显示监听端口-n:以数字形式显示地址和端口-p:显示进程ID和名称
 - 
开放/关闭端口

- firewalld防火墙(CentOS 7及以上):  
firewall-cmd --permanent --add-port=8080/tcp # 永久开放8080端口 firewall-cmd --reload # 重新加载防火墙配置 firewall-cmd --list-ports # 查看已开放端口
 - iptables防火墙(CentOS 7及以下):  
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT # 允许3306端口访问 service iptables save # 保存规则
 
 - firewalld防火墙(CentOS 7及以上):  
 
安全防护建议
- 
修改默认端口
将SSH、MySQL等服务的默认端口修改为非标准端口(如SSH改为2222),可降低自动化攻击风险。- 修改SSH端口:编辑
/etc/ssh/sshd_config,修改Port行后重启服务:systemctl restart sshd。 
 - 修改SSH端口:编辑
 - 
限制访问IP
通过防火墙限制仅允许特定IP访问关键服务,firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.100 port protocol=tcp port=22 accept"
 - 
定期检查端口
使用lsof -i :端口号查看端口占用进程,发现异常进程及时终止。
 
FAQs
Q1: 如何查看CentOS系统当前所有监听的TCP端口?
A1: 可通过以下命令查看:  
ss -tulnp # 显示所有TCP/UDP监听端口及进程信息 netstat -tulnp # 传统方式,功能与ss类似
Q2: CentOS中如何永久关闭某个不需要的端口?
A2: 以关闭80端口为例:  
- 若使用firewalld:  
firewall-cmd --permanent --remove-port=80/tcp firewall-cmd --reload
 - 若使用iptables:  
iptables -D INPUT -p tcp --dport 80 -j ACCEPT service iptables save
 - 同时需确保对应服务已停止(如
systemctl stop httpd)。