温馨提示×

centos selinux如何放行端口

小樊
51
2026-09-26 23:33:45
栏目: 智能运维

在 CentOS 中,如果启用了 SELinux,除了 firewalld / iptables 放行端口外,还需要让 SELinux 允许该端口。下面是常见做法。


一、查看当前 SELinux 状态

getenforce
  • Enforcing:生效中(需要配置)
  • Permissive:仅记录不拦截
  • Disabled:未启用(无需配置)

二、查看某端口是否已被 SELinux 放行

semanage port -l | grep http

例如查看 80 / 8080:

semanage port -l | grep 80

三、放行(添加)端口到 SELinux

1️⃣ 添加 TCP 端口(最常用)

semanage port -a -t http_port_t -p tcp 8080

说明:

  • http_port_t:Web 服务常用类型
  • 8080:你要放行的端口
  • -p tcp:协议

2️⃣ 常见服务对应的 SELinux 类型

服务 类型
HTTP http_port_t
HTTPS http_port_t
SSH ssh_port_t
MySQL mysqld_port_t
Redis redis_port_t
自定义 http_port_t 或自定义

示例(SSH):

semanage port -a -t ssh_port_t -p tcp 2222

四、如果提示 semanage 不存在

安装工具:

yum install -y policycoreutils-python-utils

五、验证端口是否添加成功

semanage port -l | grep 8080

六、完整示例(以 8080 为例)

# 1. 防火墙
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

# 2. SELinux
semanage port -a -t http_port_t -p tcp 8080

# 3. 重启服务
systemctl restart nginx

七、临时测试(不推荐生产)

setenforce 0

仅用于排查问题。


如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 服务类型(Nginx / Java / MySQL 等)
  • 端口号

我可以给你精确命令。

0 踩