查看当前系统开放的服务与端口
在操作之前,需要先明确系统当前运行的服务和开放的端口,避免误关必要的功能。首先使用systemctl查看所有已启动的服务:
# 查看所有正在运行的服务 systemctl list-units --type=service --state=running # 查看所有已设置开机自启的服务 systemctl list-unit-files --type=service --state=enabled
接着查看系统当前开放的端口,使用ss命令比netstat更适配新版本CentOS:
# 查看所有监听的TCP和UDP端口 ss -tulnp # 参数说明:-t TCP端口 -u UDP端口 -l 监听状态 -n 数字显示端口 -p 显示对应进程
禁用不必要的系统服务
CentOS默认会开启如cups打印服务、telnet远程服务、rpcbind远程调用服务等非必需服务,可根据实际需求关闭。以关闭cups服务为例:
# 停止当前运行的cups服务 systemctl stop cups # 禁止cups服务开机自启 systemctl disable cups # 确认服务状态 systemctl status cups
常见的可关闭非必要服务参考如下:
- cups:打印服务,无打印需求可关闭
- telnet:明文远程服务,建议用ssh替代
- rpcbind:NFS相关服务,无文件共享需求可关闭
- avahi-daemon:本地服务发现,服务器环境可关闭
配置防火墙限制开放端口
CentOS 7及以上版本默认使用firewalld作为防火墙工具,可通过规则限制仅开放必要端口。首先确认firewalld运行状态:
# 查看firewalld状态 systemctl status firewalld # 若未运行则启动并设置开机自启 systemctl start firewalld systemctl enable firewalld
接下来开放必要端口,比如ssh默认的22端口,关闭其他非必要端口:
# 开放22端口(TCP协议) firewall-cmd --permanent --add-port=22/tcp # 移除不需要的端口,比如默认的80端口如果不需要可移除 firewall-cmd --permanent --remove-port=80/tcp # 重新加载防火墙规则使配置生效 firewall-cmd --reload # 查看当前开放的端口规则 firewall-cmd --list-ports
验证配置效果
完成服务和端口配置后,需要验证是否生效。再次执行端口查看命令:
ss -tulnp
确认非必要端口不再处于监听状态,同时检查服务状态:
systemctl list-units --type=service --state=running
确保已禁用的服务不再运行,最后可尝试从外部访问非开放端口,确认无法连接即配置成功。
注意事项
禁用服务前需确认该服务是否为业务所需,比如Web服务器需要开放80或443端口,数据库服务器需要开放对应数据库端口,避免误关必要服务导致业务中断。如果不确定某个服务的作用,可先查询服务说明再操作。

CentOS防火墙配置systemctl服务管理端口管理网络安全修改时间:2026-06-25 04:51:21