在CentOS 7上打开防火墙端口

我使用CentOS 7,我必须确保端口2888和3888是开放的。

我读了这篇文章,但这没有工作,因为在CentOS 7操作系统上没有iptables save命令。

有人告诉我上面的URL对CentOS 7无效。和我应该遵循。 但是这篇文章对我来说不清楚我到底需要执行什么命令

我还发现

firewall-cmd --zone=public --add-port=2888/tcp

但这在重启后就不存在了。

所以我怎么能打开端口,使它幸存重启?

1002041 次浏览

使用此命令查找您的活动区域:

firewall-cmd --get-active-zones

它会说public、dmz或其他东西。您应该只申请所需的区域。

在公开审判的情况下:

firewall-cmd --zone=public --add-port=2888/tcp --permanent

然后记得重新加载防火墙以使更改生效。

firewall-cmd --reload

否则,请将您的zone替换为public,例如,如果您的zone是dmz:

firewall-cmd --zone=dmz --add-port=2888/tcp --permanent
ganeshragav的答案是正确的,但是 知道你可以使用:

也是有用的
firewall-cmd --permanent --zone=public --add-port=2888/tcp

但如果是一个已知的服务,你可以使用:

firewall-cmd --permanent --zone=public --add-service=http

然后重新加载防火墙

firewall-cmd --reload

[修改的答案,以反映马丁彼得的评论,原来的答案有--permanent在命令行结束]

CentOS (RHEL) 7已经将防火墙更改为使用firewall-cmd,它具有区域的概念,就像Windows版本的公共,家庭和私有网络。你应该查看在这里来找出你认为你应该使用哪一个。EL7默认使用public,所以下面的例子就是这样使用的。

你可以用firewall-cmd --list-all检查你正在使用的区域,并用firewall-cmd --set-default-zone=<zone>改变它。

然后你将知道哪个区域允许一个服务(或端口):

firewall-cmd --permanent --zone=<zone> --add-service=http

firewall-cmd --permanent --zone=<zone> --add-port=80/tcp

您可以通过运行以下命令检查端口是否已实际打开:

firewall-cmd --zone=<zone> --query-port=80/tcp

firewall-cmd --zone=<zone> --query-service=http

根据文档

当在永久模式下更改防火墙设置时,您的 选项仅在重新加载防火墙或 系统重启。< / p >

你可以用firewall-cmd --reload重新加载防火墙设置。

Fedora,通过iptables实现

sudo iptables -I INPUT -p tcp --dport 3030 -j ACCEPT
sudo service iptables save

似乎有效

如果你熟悉centos 6或更早版本的iptables服务,你仍然可以通过手动安装使用iptables服务:

步骤1 => install epel repo

Yum安装epel-release

步骤2 => install iptables service . sh

Yum安装iptables-services

步骤3 =>停止防火墙服务

Systemctl停止防火墙

步骤4 =>启动时禁用防火墙服务

Systemctl禁用防火墙

步骤5 =>启动iptables服务

Systemctl启动iptables

步骤6 => enable iptables on startup

Systemctl启用iptables

最后,您现在可以在/etc/sysconfig/iptables编辑您的iptables配置。

所以->编辑规则->重新加载/重新启动。

做像更老的centos与相同的功能像防火墙。

虽然ganeshragavSotsir提供了正确且直接适用的方法,但值得注意的是,您可以将自己的服务添加到/etc/firewalld/services中。为了获得灵感,看看/usr/lib/firewalld/services/,防火墙的预定义服务位于那里。

这种方法的优点是,稍后您将知道为什么这些端口是打开的,正如您在服务文件中所描述的那样。此外,您现在可以将其应用到任何区域,而没有拼写错误的风险。此外,对服务的更改不需要分别应用到所有区域,而只需应用到服务文件。

例如,你可以创建/etc/firewalld/services/foobar.xml:

<?xml version="1.0" encoding="utf-8"?>
<service>
<short>FooBar</short>
<description>
This option allows you to create FooBar connections between
your computer and mobile device. You need to have FooBar
installed on both sides for this option to be useful.
</description>
<port protocol="tcp" port="2888"/>
<port protocol="tcp" port="3888"/>
</service>

(有关语法的信息,请执行man firewalld.service。)

一旦创建了这个文件,你可以firewall-cmd --reload使它可用,然后永久地将它添加到某个区域

firewall-cmd --permanent --zone=<zone> --add-service=foobar

后面跟着firewall-cmd --reload使它立即激活。

上面的答案在这里是有效的,但我在迈克尔·汉普顿的回答中找到了一个相关问题的更优雅的答案。firewall-cmd的"new" (firewall -0.3.9-11+) --runtime-to-permanent选项允许你创建运行时规则,并在将它们永久化之前对它们进行测试:

$ firewall-cmd --zone=<zone> --add-port=2888/tcp
<Test it out>
$ firewall-cmd --runtime-to-permanent

或者恢复仅运行时的更改:

$ firewall-cmd --reload

也可参见Antony Nguyen的评论。显然firewall-cmd -reload可能无法正常工作在某些情况下,规则已被删除。在这种情况下,他建议重新启动防火墙服务:

$ systemctl restart firewalld

使用以下命令查看开放的端口。

firewall-cmd --list-ports

我们使用以下命令查看端口打开的服务。

firewall-cmd --list-services

我们使用以下命令查看端口开放的服务和开放的端口

firewall-cmd --list-all

要向防火墙中添加服务,我们使用以下命令,在这种情况下,服务将使用防火墙中打开的任何端口。

firewall-cmd --add-services=ntp

为了使这个服务永久打开,我们使用下面的命令。

firewall-cmd —add-service=ntp --permanent

使用实例添加端口

firewall-cmd --add-port=132/tcp  --permanent

要运行防火墙,必须使用以下命令重新加载。

firewall-cmd --reload

你阿里

防火墙对于iptables老手来说有点不直观。对于那些喜欢使用iptables驱动的防火墙,并在易于配置的树中使用类似iptables的语法的人,可以尝试用fwtree替换firewall: https://www.linuxglobal.com/fwtree-flexible-linux-tree-based-firewall/ 然后执行以下操作:

 echo '-p tcp --dport 80 -m conntrack --cstate NEW -j ACCEPT' > /etc/fwtree.d/filter/INPUT/80-allow.rule
systemctl reload fwtree

使用以下命令查看开放端口:

firewall-cmd --list-ports

我们使用以下命令查看端口打开的服务:

firewall-cmd --list-services

我们使用以下命令查看端口开放的服务,并查看开放的端口:

firewall-cmd --list-all

要在防火墙中添加一个服务,我们使用下面的命令,在这种情况下,服务将使用防火墙中的任何端口打开:

firewall-cmd --add-services=ntp

为了使这个服务永久打开,我们使用下面的命令:

firewall-cmd -add-service=ntp --permanent

使用实例添加端口。

firewall-cmd --add-port=132/tcp  --permanent

如果您在Centos 7防火墙中允许多个端口,那么我们可以使用以下命令。

#firewall-cmd --add-port={port number/tcp,port number/tcp} --permanent


#firewall-cmd --reload




And check the Port opened or not after reloading the firewall.




#firewall-cmd --list-port




For other configuration [Linuxwindo.com][1]

Hello in Centos 7 firewall-cmd。 是的,如果你用 Firewall-cmd——zone=public——add-port=2888/tcp .使用实例 但如果你重新加载防火墙 firewall-cmd——重载< / p >

你的配置不会被保存

你需要添加key

Firewall-cmd——permanent——zone=public——add-port=2888/tcp