centos7 防火墙(关闭、开启、开机关闭、开机自启等)

CentOS 7.0默认使用firewall作为防火墙,与之前版本的iptables不同。博客介绍了在CentOS 7中查看防火墙是否关闭、开启和关闭防火墙、禁止和设置firewall开机启动,以及显示防火墙应用列表等操作。

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

CentOS 7.0默认使用的是firewall作为防火墙,之前版本是使用iptables。
所以在CentOS 7执行下面命令是无法查看防火墙状态的。

[root@localhost ~]# service iptables status
Redirecting to /bin/systemctl status iptables.service
Unit iptables.service could not be found.
  • 1
  • 2
  • 3
  • 4

查看防火墙是否关闭

firewall-cmd –state

[root@localhost ~]# firewall-cmd --state
not running
[root@localhost ~]#
  • 1
  • 2
  • 3

开启防火墙

[root@localhost ~]# systemctl start firewalld
[root@localhost ~]# firewall-cmd --state
running
[root@localhost ~]# 
  • 1
  • 2
  • 3
  • 4
  • 5

关闭防火墙

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# firewall-cmd --state
not running
[root@localhost ~]# 
  • 1
  • 2
  • 3
  • 4
  • 5

禁止firewall开机启动

[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
  • 1
  • 2
  • 3

这样设置的话,下次重启开机的时候就会禁止firewall的启动,即关闭状态。

设置firewall开机启动

[root@localhost ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
  • 1
  • 2
  • 3
  • 4

这样设置之后,开机就会自动开启防火墙。

显示防火墙应用列表

[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

[root@localhost ~]# firewall-cmd --add-service=ftp
success
[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: ssh dhcpv6-client ftp
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

[root@localhost ~]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

使用firewall-cmd --add-service=ftp 之后,列表显示出多了一个ftp服务。

<think>首先,用户的问题是:“我想检查CentOS7防火墙是否允许21端口通信请问CentOS7firewallcheckifport21isopen”。这涉及到CentOS7防火墙设置,具体是检查端口21(通常是FTP端口)是否开放。在系统级指令中,我需要遵守:-行内数学表达式用$...$,但这里可能没有数学表达式。-独立公式用$$...$$并单独成段,但同样,可能不需要。-LaTeX语法正确。-使用中文回答。-生成相关问题。-在引用的段落末尾添加引用标识,如[^1]。用户可见层指令:-回答结构清晰,帮助用户逐步解决问题。-保证回答真实可靠。参考站内引用:-引用[1]:关于CentOS7firewall的操作方法和应用,包括firewall-cmd的使用。-引用[2]:关于CentOS7.9迁移到openEuler,但这似乎不相关,用户的问题是检查端口,不是迁移。用户的问题是关于检查端口21是否开放,所以引用[1]更相关,因为它讨论了firewalld和firewall-cmd。我的回答应该:1.解释如何在CentOS7上使用firewall-cmd检查端口21是否开放。2.提供命令和步骤。3.结构清晰,逐步指导。4.使用中文。5.在适当的地方添加引用标识。6.最后生成相关问题。步骤:-介绍firewalld和firewall-cmd。-给出命令来检查端口状态。-解释输出。-如果有必要,建议如何打开端口(但用户只问检查)。关键命令:-检查端口是否开放:`firewall-cmd--query-port=21/tcp`-输出:yes或no,表示端口是否开放。-或者,列出所有开放端口:`firewall-cmd--list-ports`或`firewall-cmd--list-all`来查看详细信息。用户指定端口21,所以直接查询更好。添加引用:在解释firewalld时,引用[1]提到“Firewalldisacompletefirewallsolution...”,所以在相关段落末尾添加[^1]。生成相关问题:在回答后,添加“§§相关问题§§”部分,列出相关问题。完整回答结构:1.引言:简要解释CentOS7防火墙。2.步骤:如何检查端口21。3.命令示例:显示命令和预期输出。4.解释结果。5.如果端口未开放,建议如何开放(可选,但用户只问检查)。6.相关问题。使用中文。</think>### 检查CentOS 7防火墙端口21是否开放 在CentOS 7中,防火墙管理工具是`firewalld`,它通过`firewall-cmd`命令行工具进行配置和查询。端口21通常用于FTP服务,检查其是否开放可以帮助您确认FTP通信是否被允许。以下是逐步指导,确保操作安全可靠: #### 步骤1:检查端口21的开放状态 使用`firewall-cmd`命令直接查询端口21(TCP协议)的状态: ```bash firewall-cmd --query-port=21/tcp ``` - **输出解释**: - 如果返回 `yes`,表示端口21已开放,允许通信。 - 如果返回 `no`,表示端口21未开放,通信被阻止。 - 如果返回 `not running`,表示防火墙服务未动,需先激活防火墙。 #### 步骤2:验证防火墙服务状态(可选) 如果查询结果异常或您不确定防火墙是否运行,先检查服务状态: ```bash systemctl status firewalld ``` - 如果服务未运行,防火墙: ```bash systemctl start firewalld systemctl enable firewalld # 设置开机 ``` 然后重新执行步骤1的查询命令[^1]。 #### 步骤3:查看所有开放端口(辅助确认) 列出当前所有开放端口,以验证端口21是否在列表中: ```bash firewall-cmd --list-ports ``` - 如果输出包含 `21/tcp`,则端口开放;否则未开放。 #### 示例输出 假设端口21已开放: ```bash $ firewall-cmd --query-port=21/tcp yes ``` #### 注意事项 - **权限要求**:所有命令需以`root`用户或`sudo`权限执行。 - **配置持久性**:`firewall-cmd`的查询基于运行时配置。如果更改过规则,需用`--permanent`参数保存(例如:`firewall-cmd --add-port=21/tcp --permanent`),然后重载防火墙(`firewall-cmd --reload`)[^1]。 - **安全建议**:端口21对应FTP服务,但FTP协议不安全,建议改用SFTP(端口22)或FTPS(显式模式端口990)。如果必须使用,确保配置强密码和IP限制。 通过以上步骤,您可以快速确认端口21的开放状态。如果返回`no`,您可能需要手动添加端口(使用`firewall-cmd --add-port=21/tcp --permanent`),但请基于实际需求评估安全风险[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值