找不到CentOS 7 Firewall-cmd


20

我刚刚安装了CentOS 7:

[root @ new〜]#cat / etc / redhat-release
CentOS Linux版本7.1.1503(核心) 

我正在尝试配置防火墙,并被告知在CentOS 7中,不再使用iptables,而是由firewalld代替。尝试运行命令来设置防火墙规则时:

防火墙-cmd --add-port = 80 / tcp

我收到以下消息:

[root @ new〜]#Firewall-cmd --add-port = 80 / tcp
-bash:防火墙-cmd:找不到命令

编辑:我也尝试了以下命令:

[root @ new〜]#Firewall-offline-cmd --add-port = 80 / tcp
-bash:firewall-offline-cmd:找不到命令

没有任何成功。

我尝试运行以下命令来检查是否已安装firewalld:

[root @ new〜]#服务防火墙状态
重定向到/ bin / systemctl状态firewalld.service
防火墙服务
   已加载:找不到(原因:没有此类文件或目录)
   有效:无效(无效)

在此输出之后,我尝试启动firewalld:

[root @ new〜]#服务防火墙启动
重定向到/ bin / systemctl,启动firewalld.service
无法发出方法调用:单元firewalld.service无法加载:没有这样的文件或目录。

有什么想法CentOS 7安装有什么问题吗?这是在OpenVZ VPS上进行的全新安装,我尚未进行任何更改。


2
您是否尝试安装 firewalld?
迈克尔·汉普顿

@MichaelHampton ...到目前为止,本周最大的面部表情...我假设,因为服务命令没有被夷为平地返回“未找到”,就像我在debian上看到的那样,它已安装但未配置,但您已经正确,好像没有安装。
BnMcG 2015年

2
OpenVZ的默认CentOS模板不是标准的。它是高度定制化并精简的。(所有其他模板也是如此。)如果缺少某些内容,请尝试安装它。并尽快停止使用基于OpenVZ的VPS提供程序;您只会稍后再遇到更多问题...
Michael Hampton

@MichaelHampton啊,这很有意义,谢谢您,我想知道为什么默认情况下未预先安装它。
BnMcG 2015年

Answers:


31

两种可能的选择

  • 您的PATH不包含/ usr / bin
  • 未安装firewall-cmd
    • 百胜安装firewalld

如上文所述,@ MichaelHampton评论:OpenVZ的CentOS 7模板被剥离,默认情况下不包括防火墙。答案是,当然要安装firewalld。
BnMcG 2015年

28

在我看来,您没有安装/启用它。

yum install firewalld
systemctl unmask firewalld
systemctl enable firewalld
systemctl start firewalld

这基本上与先前的答案相同。
kasperd

8
该答案通过显示启用和启动服务的命令来增加价值。我赞成两个​​答案。
isapir '16

虽然是TBH,但我只是发现该服务是enabled默认的。
isapir '16

-3

请尝试使用GUI工具,该实用程序默认带有centos 6/7。centos5之后不推荐使用firewalld

$ sudo system-config-firewall

要么

# system-config-firewall 

system-config-firewall看起来像这张图片


1
这是落后的。在CentOS 7中,firewalld是默认设置,而不建议使用system-config-firewall。
迈克尔·汉普顿

在我的情况下,解决方案是安装firewalld,它不是OpenVZ映像随附的。而且,无头服务器上(至少很容易)没有GUI工具。
BnMcG
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.