服务器防火墙firewalld,指定端口开放

本文介绍了如何在Linux服务器上使用firewalld开启防火墙,包括启动、关闭、状态检查以及设置开机自启。重点讲解了如何为特定端口添加、移除和管理打开权限,提供了脚本示例以简化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器防火墙firewalld,指定端口开放
为了服务器安全,减少被攻击的可能性,选择开启防火墙,如果需要用到指定的端口,那么就专门给这个端口开启通道

1 firewalld开启

开启防火墙:systemctl start firewalld

关闭防火墙:systemctl stop firewalld

防火墙状态:systemctl status firewalld

防火墙开机自启:systemctl enable firewalld

禁用防火墙:systemctl disable firewalld

2 端口开放


防火墙开启后,所以端口都是禁止访问的,所以需要根据需求开启指定的端口

## 查看开放的端口,这里是没有的
root@zxy_slave1 sysconfig]# firewall-cmd --zone=public --list-ports
## 添加你需要开放的端口XXXX
[root@zxy_slave1 sysconfig]# firewall-cmd --zone=public --add-port=XXXX/tcp --permanent
success
## 添加成功后从加载
[root@zxy_slave1 sysconfig]# firewall-cmd --reload
success
## 再次查看开放的端口,已经开启成功,测试后通过远程也可以使用,已正常
[root@zxy_slave1 sysconfig]# firewall-cmd --zone=public --list-ports
XXXX/tcp

3.脚本

添加和删除端口,主要是通过传参,使用$取到执行脚本中的参数,进而传给执行脚本
使用脚本的目的主要是为了方便自己在每次使用的时候比较方便,直接sh执行脚本即可

3.1 添加端口脚本[sh add-firewalld-port.sh port]

#!/bin/bash
# filename:add-firewalld-port.sh
# autho:zxy
# date:2022-05-17
# desc:add port


CMD=$1

firewall-cmd --zone=public --add-port=${CMD}/tcp --permanent

3.2 重载端口脚本[sh reload-firewalld-port.sh]

#!/bin/bash
# filename:reload-firewalld-port.sh
# autho:zxy
# date:2022-05-17
# desc:reload port

firewall-cmd --reload

3.3 列举端口脚本[sh list-firewalld-port.sh]

#!/bin/bash
# filename:list-firewalld-port.sh
# autho:zxy
# date:2022-05-17
# desc:list port

firewall-cmd --zone=public --list-ports

3.4 移除端口脚本[sh remove-firewalld-port.sh port]

#!/bin/bash
# filename:remove-firewalld-port.sh
# autho:zxy
# date:2022-05-17
# desc:remove port


CMD=$1

firewall-cmd --zone=public --remove-port=${CMD}/tcp --permanent


 

### 配置 Linux 防火墙开放指定端口 在 Linux 系统中,开放指定端口通常涉及使用 `firewalld` 或 `iptables` 工具。以下分别介绍这两种方式的具体操作步骤。 #### 使用 `firewalld` 开放端口 `firewalld` 是一种动态管理防火墙的工具,支持运行时配置和永久配置。开放指定端口时,可以通过以下命令实现: - 添加指定端口(如 8080)到防火墙规则中: ```bash sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent ``` 该命令将端口 8080 添加到 `public` 区域,并设置为 TCP 协议,`--permanent` 表示该规则在系统重启后依然有效。 - 重新加载防火墙规则以应用更改: ```bash sudo firewall-cmd --reload ``` - 验证端口是否已成功开放: ```bash sudo firewall-cmd --query-port=8080/tcp ``` 如果返回 `yes`,则表示端口已成功开放;如果返回 `no`,则表示未开放。 - 查看当前开放的所有端口: ```bash sudo firewall-cmd --zone=public --list-ports ``` 该命令会列出当前区域中已开放的所有端口和协议组合。 - 移除指定端口: ```bash sudo firewall-cmd --permanent --remove-port=8080/tcp ``` 此命令用于删除之前添加的端口规则,同样需要重新加载防火墙规则才能生效。 #### 使用 `iptables` 开放端口 `iptables` 是一种更传统的防火墙管理工具,适用于大多数 Linux 发行版。开放指定端口时,可以通过以下命令实现: - 添加规则以允许指定端口(如 8080)的流量: ```bash sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT ``` 该命令将允许所有目标端口为 8080 的 TCP 流量通过防火墙。 - 保存规则以确保系统重启后规则依然有效: ```bash sudo iptables-save > /etc/iptables/rules.v4 ``` 对于 Debian/Ubuntu 系统,保存规则到 `/etc/iptables/rules.v4`;对于 CentOS 系统,可以使用以下命令: ```bash sudo service iptables save ``` - 查看当前的防火墙规则: ```bash sudo iptables -L -n | grep 8080 ``` 该命令会列出与端口 8080 相关的规则,确保规则已正确添加。 #### 其他防火墙管理工具 对于 Ubuntu 系统,默认使用 `ufw`(Uncomplicated Firewall)作为防火墙管理工具。开放指定端口时,可以通过以下命令实现: - 允许指定端口(如 8080)的流量: ```bash sudo ufw allow 8080/tcp ``` 该命令将允许所有目标端口为 8080 的 TCP 流量通过防火墙。 - 重新加载防火墙规则以应用更改: ```bash sudo ufw reload ``` #### 确保服务正在监听端口 开放端口后,还需要确保服务正在监听该端口。可以通过以下命令检查端口状态: - 使用 `netstat` 检查端口状态: ```bash sudo netstat -tulnp | grep 8080 ``` 该命令会列出与端口 8080 相关的监听状态。 - 使用 `ss` 检查端口状态: ```bash sudo ss -tulnp | grep 8080 ``` 该命令的功能与 `netstat` 类似,但性能更优。 如果服务未在监听指定端口,可能需要检查应用程序的配置文件,确保其绑定到正确的 IP 地址和端口上。 #### 防火墙相关命令 - 查看防火墙状态: ```bash sudo systemctl status firewalld ``` 该命令会显示防火墙服务的当前状态,包括是否启用开机启动以及最近的运行状态信息。 - 启动防火墙: ```bash sudo systemctl start firewalld ``` 该命令会立即启动防火墙服务。 - 停止防火墙: ```bash sudo systemctl stop firewalld ``` 该命令会立即停止防火墙服务。 - 禁用防火墙开机自启: ```bash sudo systemctl disable firewalld ``` 该命令会禁用防火墙服务的开机自启动功能。 - 启用防火墙开机自启: ```bash sudo systemctl enable firewalld ``` 该命令会设置防火墙服务开机自启。 #### 示例:开放端口并验证状态 ```bash # 添加指定端口防火墙规则中 sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent # 重新加载防火墙规则 sudo firewall-cmd --reload # 验证端口是否已开放 sudo firewall-cmd --query-port=8080/tcp ``` 上述命令将指定端口添加到防火墙规则中,并通过重新加载规则应用更改,最后验证端口是否已成功开放[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值