RHEL7系统默认使用firewalld管理防火墙,开放443端口(HTTPS服务)需通过以下步骤:首先确保firewalld服务运行(systemctl start firewalld);使用firewall-cmd --permanent --add-service=https添加https服务(或--add-port=443/tcp直接开放端口),--permanent表示永久生效;执行firewall-cmd --reload重载配置使规则生效;最后通过firewall-cmd --list-services或--list-ports验证端口是否开放,临时开放可省略--permanent,但重启后失效。
在RHEL7(Red Hat Enterprise Linux 7)系统中,防火墙默认使用firewalld服务管理网络流量,替代了早期版本的iptables,443端口是HTTPS服务的默认端口,用于加密的Web通信(如网站、API服务等),若需对外提供HTTPS服务,必须确保防火墙放通该端口,本文将详细介绍通过firewalld开放443端口的完整命令及操作逻辑,帮助用户快速配置并验证防火墙规则。
背景知识:为什么需要开放443端口?
HTTPS(Hypertext Transfer Protocol Secure)是基于SSL/TLS加密的HTTP协议,通过443端口传输数据,可保障数据传输的机密性和完整性,常见的需要开放443端口的场景包括:
- 搭建Web服务器(如Nginx、Apache)提供HTTPS访问;
- 部署SSL证书验证的服务(如企业官网、电商平台);
- 使用基于HTTPS的API接口或远程管理工具。
若防火墙未放通443端口,外部客户端将无法通过HTTPS协议访问服务,导致连接超时或拒绝访问。

RHEL7防火墙基础:firewalld简介
firewalld是RHEL7及后续版本的默认防火墙管理工具,采用“区域(Zone)”概念划分网络信任级别(如public、internal、dmz等),不同区域可应用不同的防火墙规则,默认情况下,RHEL7使用public区域(适用于公共网络,如互联网),新规则默认作用于该区域。
开放443端口的详细步骤
检查防火墙运行状态
在配置规则前,需确认firewalld服务是否正在运行,若未运行,需先启动服务:
# 检查firewalld服务状态 systemctl status firewalld # 若未启动,执行以下命令启动(并设置为开机自启) systemctl start firewalld systemctl enable firewalld
若输出显示active (running),则表示服务已正常运行。
查看当前已开放的端口和服务
为避免重复配置,可先查看当前public区域已开放的端口和服务:
# 查看已开放的端口(格式:端口号/协议) firewall-cmd --list-ports # 查看已开放的服务(服务名称需在firewalld服务列表中) firewall-cmd --list-services
若输出中包含80/tcp,则80端口(HTTP)已开放;若包含https,则443端口可能已通过服务形式开放(见下文“服务方式”说明)。
开放443端口:两种常用方式
直接开放端口(推荐)
通过指定端口号和协议(TCP)开放443端口,适合自定义服务或非标准HTTPS配置。
-
临时开放(重启后失效):
firewall-cmd --add-port=443/tcp
适用于临时测试,无需重启防火墙即可生效。
-
永久开放(重启后仍生效):
firewall-cmd --permanent --add-port=443/tcp
注意:添加
--permanent参数后,规则需重新加载才能立即生效(见步骤4)。
通过服务名称开放(规范管理)
firewalld预定义了常见服务的规则(如http、https、ssh等),直接调用服务名称可开放对应端口,避免记忆端口号。
-
检查
https服务是否已定义:firewall-cmd --get-services | grep https
若输出包含
https,则可直接使用该服务(https服务默认对应443/TCP端口)。 -
开放
https服务:# 临时开放 firewall-cmd --add-service=https # 永久开放(推荐) firewall-cmd --permanent --add-service=https
重新加载防火墙配置(永久规则生效)
若通过--permanent添加了规则,需执行以下命令重新加载firewalld,使新规则立即生效(无需重启服务):
firewall-cmd --reload
验证443端口是否开放
配置完成后,需确认规则已正确加载:
-
查看已开放的端口:
firewall-cmd --list-ports
若输出包含
443/tcp,则表示端口开放成功。 -
查看已开放的服务:
firewall-cmd --list-services
若通过服务方式开放,输出应包含
https。 -
测试端口连通性:
使用telnet或curl工具从外部客户端测试:# telnet测试(需安装telnet客户端:yum install telnet) telnet <服务器IP> 443 # curl测试(若服务已启动) curl -I https://<服务器IP>
若
telnet返回“Connected to ...”,或curl返回HTTP响应头,则表示端口放通成功。
注意事项与常见问题
区域(Zone)配置
若服务器不在默认的public区域(如使用dmz区域),需在命令中指定区域:
# 永久开放dmz区域的443端口 firewall-cmd --permanent --zone=dmz --add-port=443/tcp firewall-cmd --reload
可通过`firewall-cmd --get-active-z

