远程终端一行命令开放 Linux 端口 —— firewalld 极简手册

适用系统:CentOS 7/8、RHEL 7/8、AlmaLinux、Rocky Linux
定位:在 SSH 会话里复制即可用,无需 GUI

1. 30 秒速查:防火墙到底开没开?

systemctl is-active firewalld && echo "运行中" || echo "未运行"

输出 running 再继续;若 inactive 先启动:

 

sudo systemctl start firewalld
sudo systemctl enable firewalld   # 开机自启

2. 一条命令放行端口(永久生效)

# 单端口
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp

# 连续端口段
sudo firewall-cmd --permanent --zone=public --add-port=8000-8010/tcp

# 一次性搞定常用 Web 端口
sudo firewall-cmd --permanent --zone=public --add-port={80,443,8080,8443}/tcp

立即生效

sudo firewall-cmd --reload

 

3. 验证 / 删除 / 列表(同样一条命令)

# 查单个
sudo firewall-cmd --zone=public --query-port=80/tcp && echo "已放行" || echo "未放行"

# 删单个
sudo firewall-cmd --permanent --zone=public --remove-port=80/tcp
sudo firewall-cmd --reload

# 一览所有已放行端口
sudo firewall-cmd --zone=public --list-ports

4. 完整生命周期示例:放行 3000 端口给 Node 项目

# 1. 放行
sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
# 2. 重载
sudo firewall-cmd --reload
# 3. 验证
sudo firewall-cmd --zone=public --query-port=3000/tcp
# 4. 项目下线后回收
sudo firewall-cmd --permanent --zone=public --remove-port=3000/tcp
sudo firewall-cmd --reload

5. 常用运维命令速查表

启动防火墙    | `sudo systemctl start firewalld`            
关闭防火墙    | `sudo systemctl stop firewalld`             
重启防火墙    | `sudo systemctl restart firewalld`          
开机自启     | `sudo systemctl enable firewalld`           
取消自启     | `sudo systemctl disable firewalld`          
查看版本     | `firewall-cmd --version`                    
查看状态     | `firewall-cmd --state`                      
活跃区域     | `firewall-cmd --get-active-zones`           
网卡所属区域   | `firewall-cmd --get-zone-of-interface=eth0` 
应急模式(断网) | `sudo firewall-cmd --panic-on`              
取消应急     | `sudo firewall-cmd --panic-off`             
查应急状态    | `firewall-cmd --query-panic`                

 

THE END