CentOS7中开放多个防火墙端口

CentOS7中开放多个防火墙端口

我需要在 CentOS 机器上打开多个不同的端口(不在范围内)。

我知道如何使用 打开端口firewall-cmd,但打开 40 个或更多端口会很麻烦。

是否有一个配置文件,让我可以在一个地方定义所有开放端口?遗憾的是,我没有找到任何相关信息。

答案1

您可以从包含所有所需端口的 xml 文件中定义服务,从中添加服务然后启用它。创建 service.xml 文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
 <service>
  <port port="port1" protocol="proto1"/>
  <port port="port2" protocol="proto2"/>
  <port port="port3" protocol="proto3"/>
  <port port="port4" protocol="proto4"/>
 </service>

添加新服务:

# firewall-offline-cmd --new-service-from-file=service.xml --name=My_Service

重新加载防火墙-cmd:

# firewall-cmd --reload

然后添加您的服务:

# firewall-cmd --add-service My_Service

答案2

firewall-cmd --permanent --add-port={80/tcp,443/tcp,9200/tcp,5601/tcp,5044/tcp}
firewall-cmd --reload

答案3

您可以随时制作一个小脚本/单行代码:

#!/bin/bash
for i in 80 443 22 123 21 1337 31337
do
  firewall-cmd --zone=public --add-port=${i}/tcp
done

答案4

尽管这是一个非常古老的问题,但它确实“有趣”,所以我认为我应该回答它。

所有可能的端口都在一行中

# simple
firewall-cmd --add-port={80,443}/tcp

# Both protocols
firewall-cmd --add-port={80,443}/{tcp,udp}

# can be a bit complex and note the nested parentheses
firewall-cmd --add-port={{80,443}/{tcp,udp},{110,995}/tcp}

然后输入以下命令查看你做了什么:)

firewall-cmd --list-ports

但服务更好

我也尝试过--add-services', whose names can be found in/etc/services。它甚至比使用端口更好。名称和端口都在该文件中,因此您可以列出其中一些:

grep -E 'http|imap|pop3|smtp|dns|ftp' /etc/services

我们可以通过输入以下内容来打开端口:“:

# readable
firewall-cmd --add-service={http,https}
firewall-cmd --list-services

暂时就这样。

相关内容