SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port

附加表现症状:服务器起来后本地curl 127.0.0.1:端口可以访问 但是配置nginx代理用80端口转发后无法访问。

环境: CentOS8

        今天,由于需要把httpd的端口改为一个自定义的端口,结果修改后,httpd启动失败。查看syslog发现报错:SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port 。

        从日志看,显然是被SELinux给拦截了。

        SELinux为系统里的所有端口进行分配。缺省条件下,所有小于1024的端口都标识为保留端口类型 reserved_port_t;所有大于1024的端口标识为port_t。还有一些专用的类型,比如说80端口,对应的类型是http_port_t;5060端口则是sip_port_t。如果你想查询SELinux的所有端口类型,可以用semanage工具。

# semanage port -l
看下http端口有哪些:

# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
那么解决方案一:从80, 81, 443, 488, 8008, 8009, 8443, 9000里挑选一个配置给httpd。

解决方案二:增加一个http端口:

# semanage port -a -t http_port_t -p tcp 5060
由于5060端口已经分配给SIP,所以上面的的命令是会报错的。

如果不需要,也可以关闭策略

semanage port -d -t http_port_t -p tcp 5060

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值