shell 永久开放端口号

 

复制代码
#!/bin/bash  
  
# 检查参数数量  
if [ "$#" -ne 1 ]; then  
    echo "Usage: $0 <port_number>"  
    exit 1  
fi  
  
# 获取端口号  
PORT=$1  
  
# 检查端口号是否为数字  
if ! [[ "$PORT" =~ ^[0-9]+$ ]]; then  
    echo "Error: Port number must be a positive integer."  
    exit 1  
fi  
  
# 开放端口  
sudo firewall-cmd --zone=public --add-port=$PORT/tcp --permanent  
  
# 重新加载防火墙配置  
sudo firewall-cmd --reload  
  
# 检查端口是否已开放  
if sudo firewall-cmd --zone=public --query-port=$PORT/tcp; then  
    echo "Port $PORT has been opened successfully."  
else  
    echo "Failed to open port $PORT."  
    exit 1  
fi
复制代码

 

保存上面的脚本到一个文件,例如open_port.sh,然后给予执行权限:

chmod +x open_port.sh

之后,你可以通过以下方式运行脚本,开放指定的端口:

./open_port.sh 8080

这将永久开放8080端口。请注意,运行此脚本可能需要root权限,因此你可能需要使用sudo

sudo ./open_port.sh 8080

 

 

如果遇到:FirewallD is not running 问题。

解决方案:

如果您的 CentOS 7 系统提示 "FirewallD is not running",这表示防火墙服务尚未启动。FirewallD 是 CentOS 7 默认的防火墙管理工具,它基于 iptables 提供了更友好的接口和更强大的功能。

要解决这个问题,您可以按照以下步骤操作:

  • 1.启动 FirewallD 服务:

使用 systemctl 命令来启动 FirewallD 服务。

sudo systemctl start firewalld

如果您希望在系统启动时自动启动 FirewallD 服务,可以执行:

sudo systemctl enable firewalld
  • 2.检查 FirewallD 状态:

您可以使用以下命令来检查 FirewallD 的状态:

sudo systemctl status firewalld

如果服务正在运行,您将看到一条消息表示 "active (running)"。

  • 3.重启服务:
sudo systemctl restart firewalld

 

posted @   He_LiangLiang  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示