如何在CentOS 9中开放指定范围的端口?
美国、香港服务器
如何在CentOS 9中开放指定范围的端口?
01-14 来源:
使用 firewall - cmd 命令(推荐)
假设要开放端口范围是从 5000 到 5010(以 TCP 协议为例)。
首先,添加端口范围规则:
执行命令sudo firewall - cmd --zone = public --add - port = 5000 - 5010/tcp --permanent。
解释:
--zone = public:指定防火墙区域为公共区域。这是常用的区域,不过根据具体的网络环境和需求,也可以是其他区域,如dmz(非军事区)、internal(内部区域)等。
--add - port = 5000 - 5010/tcp:这是关键部分,表示添加 TCP 协议下从 5000 到 5010 的端口范围。如果是 UDP 协议,需要将/tcp替换为/udp。
--permanent:该参数使规则成为永久性的。如果没有这个参数,在防火墙重新加载或者系统重启后,这个规则就会丢失。
然后,重新加载防火墙规则:
执行命令sudo firewall - cmd --reload。这一步很重要,因为只有重新加载规则后,新添加的端口范围规则才会生效。
检查端口范围是否开放成功
可以使用命令sudo firewall - cmd --zone = public --list - ports来查看在公共区域已经开放的所有端口。如果看到5000 - 5010/tcp,就说明端口范围开放成功。
使用 iptables(不推荐,因为 CentOS 9 默认使用 firewall - cmd)
如果因为某些原因不想使用firewall - cmd,也可以通过iptables来开放端口范围。不过这需要先关闭firewalld服务,并且在后续维护中要注意iptables规则的管理。
首先关闭firewalld:
执行命令sudo systemctl stop firewalld,然后sudo systemctl disable firewalld,这样可以防止firewalld干扰iptables的操作。
接着,使用iptables添加规则:
执行命令sudo iptables -A INPUT -p tcp --match multiport --dports 5000:5010 -j ACCEPT。
解释:
-A INPUT:表示在INPUT链(用于控制进入主机的数据包)中添加规则。
-p tcp:指定协议为 TCP。如果是 UDP 协议,需要将-p tcp替换为-p udp。
--match multiport:用于匹配多个端口。
--dports 5000:5010:指定端口范围从 5000 到 5010。
-j ACCEPT:表示接受匹配规则的数据包,也就是开放这个端口范围。
最后,保存iptables规则:
执行命令sudo service iptables save,这样在系统重启后规则仍然有效。不过,在 CentOS 9 中,这种方式相对复杂,并且不符合默认的防火墙管理方式,所以一般情况下还是推荐使用firewall - cmd来开放端口范围。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快