Nginx端口telnet不通排查过程及解决
作者:weixin_44956870
Nginx配置20002端口失败,因SELinux权限及防火墙阻止,解决需调整SELinux策略、开放防火墙端口,重启服务并测试本地与远端访问
nginx已经配置server及端口20002,telnet不通:
telnet 127.0.0.1 20002 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused
一、检查
systemctl status nginx.service
nginx: [emerg] bind() to 0.0.0.0:20002 failed (13: Permission denied)
二、解决阻止nginx bind端口问题
yum install policycoreutils-python semanage port -a -t http_port_t -p tcp 20002
问题 | CentOS 7 解决方案 |
---|---|
dnf 不可用 | 使用 yum |
semanage 不可用 | yum install policycoreutils-python |
SELinux 阻止 Nginx 绑定端口 | semanage port -a -t http_port_t -p tcp 20002 |
临时测试 SELinux 影响 | setenforce 0(仅测试用) |
检查端口是否被占用 | ss -tulnp | grep 20002 |
三、重启
systemctl restart nginx
四、本地测试
curl http://localhost:20002 本地访问响应OK
五、远端测试
客户端通过游览器访问http://ip:20002 无响应
开放端口
sudo firewall-cmd --zone=public --add-port=20002/tcp --permanent sudo firewall-cmd --reload sudo firewall-cmd --list-ports
客户端通过游览器访问http://ip:20002 响应OK
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。