centos防火墙操作firewalld and systemctl 打开linux端口的shell脚本
1、firewalld的基本使用
启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctl stop firewalld.service 重启一个服务:systemctl restart firewalld.service 显示一个服务的状态:systemctl status firewalld.service 在开机时启用一个服务:systemctl enable firewalld.service 在开机时禁用一个服务:systemctl disable firewalld.service 查看服务是否开机启动:systemctl is-enabled firewalld.service 查看已启动的服务列表:systemctl list-unit-files|grep enabled 查看启动失败的服务列表:systemctl --failed
3.配置firewalld-cmd
#! /bin/bash basepath=$(cd `dirname $0`; pwd)
#根据入参是close还是open决定是关闭还是开启配置的端口 #调用firewalld_tool.sh按照格式 bash firewalld_tool.sh open/close [PORT/tcp|udp] [PORT/tcp|udp].. 来执行
if [ $1 = "open" ]; then
sh ${basepath}/firewalld_tool.sh open 6501/tcp 6500/tcp 9582/tcp 9582/udp 443/tcp 61616/tcp 7200/tcp 7200/udp 7201/tcp 7201/udp 8833/tcp 8833/udp 8201/tcp 8201/udp 8301/tcp 8301/udp 5432/tcp 5432/udp 7210/udp
elif [ $1 = "close" ]; then
sh ${basepath}/firewalld_tool.sh close 6501/tcp 6500/tcp 9582/tcp 9582/udp 443/tcp 61616/tcp 7200/tcp 7200/udp 7201/tcp 7201/udp 8833/tcp 8833/udp 8201/tcp 8201/udp 8301/tcp 8301/udp 5432/tcp 5432/udp 7210/udp else echo"not correct args" exit 0 fi
开启和关闭端口的脚本
#! /bin/bash -xe
FIREWALLD_STAT=$(systemctl status firewalld | egrep -i -c "running")
ARGS=($*)
ZONE=$(firewall-cmd --get-default-zone)
if [ ${FIREWALLD_STAT} = "1" ]; then
echo "The Service Firewalld is running!" else echo "The Service Firewalld is not running!"
exit 0
fi
Usage() {
echo "Usage: $0:" echo "1. Config Firewalld for one port open: sudo bash $0 open/close [PORT/tcp|udp]."
echo "2. Config Firewalld for more ports open: sudo bash $0 open/close [PORT/tcp|udp] [PORT/tcp|udp]." }
if [ $# -lt 1 ]; then
Usage
exit 0
fi
Open_Ports()
{ for port in ${ARGS[@]} do echo "Opening firewalld for port: ${port}" firewall-cmd --zone=${ZONE} --add-port=${port} --permanent done # Reload Firewall configuration firewall-cmd --reload }
Close_Ports()
{ for port in ${ARGS[@]}
do
echo "Closing firewalld for port: ${port}"
firewall-cmd --zone=${ZONE} --remove-port=${port} --permanent
done
firewall-cmd --reload
}
if [ $1 = "open" ]; then
shift ARGS=($*) Open_Ports
elif [ $1 = "close" ]; then
shift ARGS=($*) Close_Ports
else Usage
exit 0
fi
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix