在CentOS系统中,关闭80端口通常出于安全考虑或服务调整需求,80端口是HTTP服务的默认端口,若无需对外提供Web服务,关闭它可以减少潜在的安全风险,以下是详细的操作步骤和注意事项,帮助用户安全、高效地完成端口关闭操作。

检查当前80端口状态
在关闭端口前,首先需要确认80端口是否已被占用以及其运行状态,通过以下命令可以查看端口监听情况:
netstat -tuln | grep 80
或使用ss命令(推荐,性能更优):
ss -tuln | grep 80
若命令返回结果中包含0.0.0:80或::80,说明80端口正在监听,此时需进一步确认是哪个服务在使用该端口,可通过以下命令:
lsof -i :80
或
sudo netstat -tulnp | grep 80
输出结果会显示进程ID(PID)和程序名称,例如nginx或httpd,便于后续操作。
停止占用80端口的服务
若80端口被Web服务(如Apache或Nginx)占用,需先停止对应服务,以下是常见服务的停止命令:

- Apache(httpd):
sudo systemctl stop httpd sudo systemctl disable httpd # 可选:禁用开机自启
- Nginx:
sudo systemctl stop nginx sudo systemctl disable nginx # 可选:禁用开机自启
停止服务后,再次执行
netstat -tuln | grep 80确认端口已释放,若需彻底卸载服务,可使用sudo yum remove httpd或sudo yum remove nginx。
通过防火墙规则关闭80端口
CentOS默认使用firewalld或iptables作为防火墙工具,以下是两种工具的关闭方法:
- 使用firewalld(CentOS 7及以上版本):
sudo firewall-cmd --permanent --remove-service=http # 移除HTTP服务规则 sudo firewall-cmd --reload # 重新加载防火墙配置
或直接拒绝80端口:
sudo firewall-cmd --permanent --add-port=80/tcp --remove sudo firewall-cmd --reload
- 使用iptables(CentOS 6或旧版):
sudo iptables -I INPUT -p tcp --dport 80 -j DROP # 添加拒绝规则 sudo service iptables save # 保存规则
或删除已存在的允许规则:
sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT sudo service iptables save
验证端口关闭状态
完成上述操作后,再次检查80端口是否已关闭:
netstat -tuln | grep 80
或

ss -tuln | grep 80
若无输出,说明80端口已成功关闭,也可通过外部工具(如telnet或nmap)测试端口是否无法访问。
注意事项
- 避免误操作:关闭80端口前确保不影响其他依赖该端口的服务或应用。
- 备份防火墙规则:修改防火墙前建议备份当前规则,例如
sudo iptables-save > backup.rules。 - SELinux影响:若系统启用SELinux,可能需调整策略(如
setsebool -P httpd_can_network_connect off),否则服务可能无法正常通信。
FAQs
Q1: 关闭80端口后,如何重新开放?
A: 若需重新开放80端口,可执行以下操作:
- firewalld:
sudo firewall-cmd --permanent --add-service=http,然后sudo firewall-cmd --reload。 - iptables:
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT,然后sudo service iptables save。
若之前停止了Web服务,需重新启动并启用开机自启。
Q2: 关闭80端口会影响本地访问吗?
A: 默认情况下,关闭80端口会阻止所有外部访问(包括IP和域名),但本地回环地址(0.0.1)的访问通常不受影响,若需限制本地访问,需额外配置防火墙规则(如sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="127.0.0.1" port protocol="tcp" port="80" accept')。