HCRM博客

如何在CentOS系统中打开特定端口?

一、CentOS 端口打开

在 CentOS 系统中,端口的打开和管理主要通过防火墙来实现,根据 CentOS 的不同版本,默认的防火墙管理工具可能有所不同,CentOS 6 及以前版本使用 iptaBLes,而 CentOS 7 及以后版本则默认使用 firewalld。

二、iptables 方式打开端口(CentOS 6 及以前)

如何在CentOS系统中打开特定端口?-图1
(图片来源网络,侵权删除)

(一)基本操作

1、启动/关闭/重启防火墙

开启防火墙(重启后永久生效):chkconfig iptables on

关闭防火墙(重启后永久生效):chkconfig iptables off

开启防火墙(即时生效,重启后失效):service iptables start

关闭防火墙(即时生效,重启后失效):service iptables stop

如何在CentOS系统中打开特定端口?-图2
(图片来源网络,侵权删除)

重启防火墙:service iptables restart

2、查看打开的端口/etc/init.d/iptables status

3、打开某个端口(以 8080 为例)

开启端口:iptables A INPUT p tcp dport 8080 j ACCEPT

保存并重启防火墙:/etc/rc.d/init.d/iptables save/etc/rc.d/init.d/iptables restart

4、打开 49152~65534 之间的端口iptables A INPUT p tcp dport 49152:65534 j ACCEPT(同样需要保存和重启防火墙)

如何在CentOS系统中打开特定端口?-图3
(图片来源网络,侵权删除)

5、其他打开方式:可以通过修改/etc/sysconfig/iptables 文件来开启端口,如添加以下行:

    A RHFirewall1INPUT m state –state NEW m tcp p tcp –dport 8080 j ACCEPT

(二)参数说明

A:添加一条规则。

p:指定协议,常用 tcp。

dport:目标端口。

sport:源端口。

j:指定动作,如 ACCEPT(接收)或 DROP(不接收)。

三、firewalld 方式打开端口(CentOS 7 及以后)

(一)基本操作

1、启动防火墙systemctl start firewalld

2、禁用防火墙systemctl stop firewalld

3、设置开机启动systemctl enable firewalld

4、停止并禁用开机启动systemctl disable firewalld

5、重启防火墙firewallcmd reload

6、查看状态systemctl status firewalldfirewallcmd state

7、查看版本firewallcmd version

8、查看帮助firewallcmd help

9、查看区域信息firewallcmd getactivezones

10、查看指定接口所属区域信息firewallcmd getzoneofinterface=eth0

11、拒绝所有包firewallcmd panicon

12、取消拒绝状态firewallcmd panicoff

13、查看是否拒绝firewallcmd querypanic

14、将接口添加到区域firewallcmd zone=public addinterface=eth0(永久生效再加上permanent reload 防火墙)

15、设置默认接口区域firewallcmd setdefaultzone=public(立即生效,无需重启)

16、更新防火墙规则firewallcmd reloadfirewallcmd completereload(两者区别是第一个无需断开连接,第二个需要断开连接,似重启服务)

(二)打开指定端口(以 8080 为例)

1、查看防火墙当前状态:确保 firewalld 服务已经运行并且正常工作,可以使用以下命令来检查:systemctl status firewalldfirewallcmd state

2、开放指定端口号:如果要开放 6690 端口,可以运行以下命令:

   firewallcmd zone=public addport=6690/tcp permanent

zone 参数指定了防火墙区域,通常使用 public 表示公共区域;addport 参数指定了要开放的端口号和协议(这里是 6690/tcp);permanent 参数表示将修改永久保存。

3、重新加载防火墙规则:使其生效。

   firewallcmd reload

4、查看端口是否已成功开放:可以运行以下命令来检查。

   firewallcmd queryport=6690/tcp

如果看到类似以下输出,表示端口已经成功开放:

   no

(三)注意事项

开放端口可能会增加服务器的安全风险,因此在进行端口开放时,务必只开放必要的端口,并遵循网络安全最佳实践。

对于需要频繁更改防火墙规则的环境,建议使用脚本自动化处理,以减少手动操作的错误和提高效率。

操作 CentOS 6 及以前(iptables) CentOS 7 及以后(firewalld)
启动防火墙chkconfig iptables onsystemctl start firewalld
关闭防火墙chkconfig iptables offsystemctl stop firewalld
重启防火墙service iptables restartfirewallcmd reload
查看状态/etc/init.d/iptables statussystemctl status firewalldfirewallcmd state
打开端口(以 8080 为例)iptables A INPUT p tcp dport 8080 j ACCEPT,然后保存并重启防火墙firewallcmd zone=public addport=8080/tcp permanent,然后重新加载防火墙
查看打开的端口/etc/init.d/iptables statusfirewallcmd zone=public listports
永久生效 修改/etc/sysconfig/iptables 文件permanent 参数
临时生效service iptables restartfirewallcmd reload

五、相关问答FAQs

Q1: CentOS 7 中如何永久开放多个端口?

A1: 在 CentOS 7 中,可以使用 firewalld 同时开放多个端口,并在命令中添加permanent 参数以确保修改永久生效,要同时开放 80 和 443 端口,可以运行以下命令:

firewallcmd zone=public addport=80/tcp permanent
firewallcmd zone=public addport=443/tcp permanent
firewallcmd reload

这样可以确保两个端口都永久开放,并且修改会立即生效。

Q2: 如果忘记了 firewalld 的配置文件路径,如何查找?

A2: 如果忘记了 firewalld 的配置文件路径,可以使用firewallcmd getactivezones 命令来查看当前活动的区域配置,这些配置文件位于/etc/firewalld/ 目录下,每个区域对应一个子目录,公共区域(public)的配置文件位于/etc/firewalld/zones/public.xml

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/12628.html

分享:
扫描分享到社交APP
上一篇
下一篇