通过ss -tuln或netstat -tuln查看开放端口,使用lsof -i :端口号确认进程;2. 用systemctl stop/disable关闭非必要服务如cups;3. 通过防火墙ufw、iptables或firewalld屏蔽端口访问,实现安全防护。

关闭Linux系统中不必要的网络端口,能有效提升系统安全性,减少被攻击的风险。核心思路是:识别开放端口、确定对应服务、停用或屏蔽不需要的服务。以下是具体操作方法。
查看当前开放的网络端口
使用以下命令查看系统当前监听的网络端口:
- netstat -tuln:显示所有监听中的TCP和UDP端口
- ss -tuln:更现代的替代命令,性能更好
- lsof -i :端口号:查看特定端口被哪个进程占用
例如,执行 ss -tuln 后,关注“Local Address:Port”列,找出非必要的监听端口。
识别端口对应的服务
查出端口后,需确认是哪个服务在使用。可通过以下方式:
- ss -tulnp | grep :端口号:显示进程名和PID
- lsof -i :22:查看22端口被哪个程序使用
常见端口如22(SSH)、80(HTTP)、443(HTTPS)通常是必要的,而像111(rpcbind)、631(cups)、5000(调试服务)等可能是非必需的。
停止并禁用非必要服务
确认服务后,使用系统服务管理工具关闭并禁止开机启动:
- systemctl stop 服务名:立即停止服务
- systemctl disable 服务名:禁止开机自启
例如关闭cups打印服务:
systemctl stop cupssystemctl disable cups
若服务由xinetd管理,可编辑 /etc/xinetd.d/ 中对应配置文件,将 disable = no 改为 yes。
使用防火墙限制端口访问
即使服务仍在运行,也可通过防火墙阻止外部访问:
- ufw deny 5000:使用UFW禁止5000端口
- iptables -A INPUT -p tcp --dport 111 -j DROP:用iptables丢弃指定端口请求
- firewall-cmd --permanent --remove-service=ipp:使用firewalld移除cups服务规则
推荐优先使用防火墙方式,尤其当无法停用服务时,可实现“端口开放但不可访问”。
基本上就这些。关键是先查清谁在用端口,再决定是关服务还是封端口。定期检查开放端口,能及时发现异常,保障系统安全。









