命令firewalld和firewall-cmd用法

本文介绍了如何使用firewalld命令来管理服务,包括启动、停止、重启和查看状态。重点讲解了如何开放和关闭端口,以及添加和删除IP访问规则。通过示例展示了在不关闭防火墙的情况下,将Tomcat的8080端口映射为80端口,并允许特定IP访问。最后进行了访问测试,验证了配置的有效性。
摘要由CSDN通过智能技术生成

firewalld命令跟firewall-cmd
1.启动firewalld服务

systemctl start firewalld.service

2.关闭firewalld服务

systemctl stop firewalld.service

3.重启firewalld服务

systemctl restart firewalld.service

4.查看firewalld状态

systemctl status firewalld.service

5.开机自启firewalld

systemctl enable firewalld

6.查看版本

firewall-cmd --version

7.查看帮助

firewall-cmd --help

8.显示状态

firewall-cmd --state

9.查看当前所有规则

firewall-cmd --list-all

10.查看所有打开的端口

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

11.更新防火墙规则

firewall-cmd --reload

12.添加开放端口

firewall-cmd --zone=public --add-port=80/tcp --permanent 
注意:permanent永久生效,没有此参数重启后失效

13.查看端口是否开放

firewall-cmd --zone=public --query-port=80/tcp

14.删除开放端口

firewall-cmd --zone=public --remove-port=80/tcp --permanent

15.批量开放一段TCP端口

firewall-cmd --permanent --add-port=9001-9100/tcp

16.开放IP的访问

firewall-cmd --permanent --add-source=192.168.229.1/24

17.开放整个源IP段的访问

firewall-cmd --permanent --add-source=192.168.229.0/24

18.移除IP访问

firewall-cmd --permanent --remove-source=192.168.229.1/24

19.允许指定IP访问本机80端口

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.229.1/24" port protocol="tcp" port="80" accept'

20.禁止指定IP访问本机80端口

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.229.1/24" port protocol="tcp" port="80" reject'

21.移除允许指定IP访问本机80端口规则

firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.229.1/24" port protocol="tcp" port="80" accept'

注:每次更改firewall规则后需重新加载(firewall-cmd --reload)

案例:

tomcat 的安装

//安装jdk环境
[root@localhost ~]# dnf -y install java-17-openjdk*
.....安装过程略

//下载tomcat
[root@localhost ~]# cd /usr/src/
[root@localhost src]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz

[root@localhost src]# tar xf apache-tomcat-9.0.65.tar.gz  //解压部署
[root@localhost src]# ls
apache-tomcat-9.0.65  apache-tomcat-9.0.65.tar.gz  debug  kernels
[root@localhost src]# mv apache-tomcat-9.0.65 /usr/local/tomcat  // 移动并重命名为Tomcat
[root@localhost src]# ll  /usr/local/tomcat/ -d
drwxr-xr-x. 9 root root 220 Aug 15 13:03 /usr/local/tomcat/

// 启动tomcat
[root@localhost ~]# cd /usr/local/tomcat/bin/
[root@localhost bin]# ./catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.

[root@localhost bin]# ss -antl  // 查看端口
State  Recv-Q Send-Q        Local Address:Port   Peer Address:Port Process
LISTEN 0      128                 0.0.0.0:22          0.0.0.0:*
LISTEN 0      1        [::ffff:127.0.0.1]:8005              *:*
LISTEN 0      100                       *:8080              *:*
LISTEN 0      128                    [::]:22             [::]:*

已经关闭SElinux

不关闭防火墙的情况下firewalld
将Tomcat的8080端口映射为80端口

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 --permanent

放行指定IP加端口80

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.229.148" port protocol="tcp" port="80" accept'

如果需要长期使用则增加--permanent加入到永久规则即可。
不添加 --permanent 重启后失效

重启防火墙

firewall-cmd --reload

查看当前所有规则

[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
	port=80:proto=tcp:toport=8080:toaddr=
  source-ports:
  icmp-blocks:
  rich rules:
	rule family="ipv4" source address="192.168.229.148" port port="80" protocol="tcp" accept
[root@localhost ~]#

访问测试

访问192.168.229.184:80 是可以访问的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aTWgrWND-1684055710242)(D:/Markdown/%E5%8D%9A%E5%AE%A2/%E7%A0%B4%E8%A7%A3%E5%AF%86%E7%A0%81/1667827522157.png)]


访问 192.168.229.184:8080 是访问不了的,因为只放行了80端口,没有放行8080端口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O7psQLjw-1684055710244)(D:/Markdown/%E5%8D%9A%E5%AE%A2/%E7%A0%B4%E8%A7%A3%E5%AF%86%E7%A0%81/1667827654302.png)]


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果在执行"firewall-cmd --list-ports"命令时没有找到,可能是因为系统中没有安装或启用防火墙软件,或者使用的命令不是针对该软件。为了解决这个问题,可以按照以下步骤进行处理: 1. 确认防火墙软件情况:首先,确认系统中是否已经安装了防火墙软件,例如iptables或firewalld。可以使用"which iptables"或"which firewalld"命令来检查是否安装了这些软件。如果没有安装,需要安装相应的软件包。 2. 启用防火墙:如果已经安装了防火墙软件,但是没有启用,可以使用"systemctl start firewalld"或"systemctl start iptables"命令来启动防火墙。 3. 使用正确的命令:确保使用的命令是针对所安装的防火墙软件。例如,如果是firewalld软件,应该使用"firewall-cmd"命令,而不是"iptables"命令。 4. 检查命令语法:如果在使用正确的命令后仍然找不到该选项,可能是命令语法不正确。请确保输入的命令及其参数正确。可以查阅相关软件的官方文档或man手册,以了解正确的命令语法。 5. 检查防火墙规则:如果防火墙软件已经正确安装和启用,并且命令语法也正确,但仍然找不到该选项,可能是因为系统上没有设置任何防火墙规则。在这种情况下,可以尝试使用其他命令,如"firewall-cmd --list-all"或"iptables -L"来检查防火墙规则是否存在。 以上是针对"firewall-cmd --list-ports"命令找不到的可能原因及解决方法的一般性回答,具体情况可能因不同系统和软件版本而异。建议根据具体错误提示或情况,进一步调查相关问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值