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 @ 2024-03-21 00:55  He_LiangLiang  阅读(20)  评论(0编辑  收藏  举报