Linux安全组端口是服务器对外提供服务的网络访问入口,通过命令行配置端口可以避免依赖图形化界面,更适合服务器远程运维场景。不同Linux发行版使用的防火墙管理工具不同,配置方式也存在差异,下面分别介绍两种主流工具的端口增加方法。

安全组端口相关基础说明
安全组端口本质是防火墙规则中对特定网络端口的访问控制策略,开放端口后外部设备才能通过对应端口访问服务器上的服务。Linux系统中常见的防火墙管理工具分为两类:
- iptables:传统的防火墙管理工具,大部分旧版Linux发行版默认使用,规则直接作用于内核netfilter框架。
- firewalld:新一代防火墙管理工具,CentOS 7及以上、Fedora等发行版默认使用,支持动态更新规则无需重启服务。
使用iptables增加安全组端口
步骤1:查看当前iptables规则
先确认当前已有的端口规则,避免重复添加,执行以下命令查看filter表的INPUT链规则:
# 查看当前iptables规则,显示行号和详细信息 iptables -L INPUT -n --line-numbers -v
步骤2:添加端口放行规则
假设需要开放8080端口的TCP访问,执行以下命令添加规则:
# 在INPUT链末尾添加规则,放行TCP协议8080端口的入站请求 iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
如果需要指定来源IP段,比如只允许192.168.1.0/24网段访问,可添加-s 192.168.1.0/24参数:
# 只允许指定网段访问8080端口 iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 8080 -j ACCEPT
步骤3:保存iptables规则
iptables规则默认是临时的,重启后会丢失,需要执行保存命令持久化规则:
# 保存规则到配置文件,不同系统配置文件路径可能不同 # CentOS/RHEL系统 service iptables save # 或者手动保存到/etc/sysconfig/iptables iptables-save > /etc/sysconfig/iptables
使用firewalld增加安全组端口
步骤1:确认firewalld服务状态
先检查firewalld是否运行,未运行需要先启动服务:
# 查看firewalld运行状态 systemctl status firewalld # 如果未运行,启动服务并设置开机自启 systemctl start firewalld systemctl enable firewalld
步骤2:添加端口放行规则
假设需要开放3306端口的TCP访问,执行以下命令添加永久规则:
# 添加3306端口TCP协议放行规则,--permanent表示永久生效 firewall-cmd --permanent --add-port=3306/tcp
如果需要开放一段端口范围,比如开放9000到9010的端口,可以使用以下命令:
# 开放端口范围 firewall-cmd --permanent --add-port=9000-9010/tcp
步骤3:重载规则生效
添加永久规则后需要重载firewalld配置让规则生效:
# 重载firewalld规则 firewall-cmd --reload
步骤4:验证规则是否添加成功
执行以下命令查看已开放的端口列表:
# 查看所有已开放的端口 firewall-cmd --list-ports
端口配置验证与问题排查
配置完成后可以通过以下方式验证端口是否生效:
- 在服务器本地使用
netstat -tuln | grep 端口号或者ss -tuln | grep 端口号查看端口是否处于监听状态。 - 从外部设备使用
telnet 服务器IP 端口号测试端口连通性,能连通说明配置成功。
如果端口无法访问,可排查以下问题:
- 确认服务本身已经启动并在对应端口监听。
- 检查是否有其他安全软件(如云服务器厂商的安全组策略)拦截了端口。
- 确认防火墙规则是否添加到了正确的链,是否保存并生效。
注意:操作防火墙规则前建议先备份原有规则,避免误操作导致服务器远程连接断开,如果是远程操作服务器,建议先开放SSH默认22端口再调整其他规则。