首页 文章

在CentOS 7上打开防火墙端口

提问于
浏览
286

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

我读了this article但这没有用,因为在CentOS 7操作系统上没有 iptables save 命令 .

有人告诉我上面的URL对CentOS 7无效,我应该按照this . 但是这篇文章并不清楚我究竟需要执行什么命令 .

我也找到了

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

但这并不能重新启动 .

那么我怎样才能打开端口并使其重新启动?

11 回答

  • 534

    这里的最佳答案有效,但我在Michael Hampton's answer找到了一个更优雅的相关问题 . "new"的"new"(firewalld-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's comment . 显然,在删除规则的情况下,firewall-cmd --reload可能无法正常工作 . 在这种情况下,他建议重新启动firewalld服务:

    $ systemctl restart firewalld
    
  • 101

    Fedora,通过 iptables 做到了

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

    似乎工作

  • 12

    对于iptables老手来说,Firewalld有点不直观 . 对于那些喜欢在易于配置的树中使用iptables类似语法的iptables驱动防火墙的人,尝试用fwtree替换firewalld: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
    
  • 3

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

    firewall-cmd --get-active-zones
    

    它会说公共,dmz或其他东西 . 您应该只申请所需的区域 .

    在公开尝试的情况下:

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

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

    firewall-cmd --reload
    

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

    firewall-cmd --zone=dmz --add-port=2888/tcp --permanent
    
  • 0

    要查看打开的端口,请使用以下命令 .

    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

  • 21

    ganeshragav的答案是正确的,但知道您可以使用以下内容也很有用:

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

    但如果是已知服务,您可以使用:

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

    然后重新加载防火墙

    firewall-cmd --reload
    

    [答案经过修改以反映Martin Peter的评论,原始答案在命令行末尾 --permanent ]

  • 0

    虽然ganeshragavSotsir提供了正确且直接适用的方法,但请注意您可以将自己的服务添加到 /etc/firewalld/services . 如需灵感,请查看firewalld预定义服务所在的 /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 使其立即生效 .

  • 47

    CentOS(RHEL)7已经将防火墙更改为使用 firewall-cmd ,它具有区域概念,类似于Windows版本的公共,家庭和专用网络 . 您应该查看here以确定您认为应该使用哪一个 . 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

    根据documentation

    在永久模式下更改防火墙设置时,只有在重新加载防火墙或系统重新启动时,您的选择才会生效 .

    您可以使用以下命令重新加载防火墙设置: firewall-cmd --reload .

  • 11

    要查看打开的端口,请使用以下命令 .

    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
    

    雅阿里

  • 2

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

    第1步=>安装epel repo

    yum install epel-release

    第2步=>安装iptables服务

    yum install iptables-services

    第3步=>停止firewalld服务

    systemctl停止firewalld

    步骤4 =>启动时禁用firewalld服务

    systemctl禁用firewalld

    第5步=>启动iptables服务

    systemctl启动iptables

    步骤6 =>启动时启用iptables

    systemctl启用iptables

    最后你现在可以在/ etc / sysconfig / iptables编辑你的iptables配置 .

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

    像firewalld一样具有相同功能的旧世纪 .

  • 0

    如果您在Centos 7 FIrewalld中有多个端口允许,那么我们可以使用以下命令 .

    #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]
    

相关问题