非root用户开启tomcat报错Permission denied

本文涉及的产品
云防火墙,500元 1000GB
简介: 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/79093755

开启tomcat失败,报错提示 Permission denied 报错信息如下:

Caused by: java.net.SocketException: Permission denied
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:210)
        at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1082)
        at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:267)
        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:581)
        at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:66)
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:993)

原因是在Centos7 中,非root用户不能开启1024以下的端口。比如我用twilight用户开启tomcat,就会报错。解决方法是通过iptables防火墙重定向端口,将80端口重定向到8080端口上去。
在Centos7中,默认的防火墙是 firewalld 需要先挂关闭它,再使用iptables防火墙。

关闭firewall防火墙
systemctl stop firewalld.service
关闭firewall开机自启
systemctl disable firewalld.service

接着安装iptables

yum install iptables-services

开放端口:

// 查看现有的iptables 规则
iptables -L -n

// 开放端口,临时的,重启会失效
iptables -I OUTPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

将80 端口 重定向到8080

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

永久保存iptable配置

// 保存
iptables-save > /etc/sysconfig/iptables
相关文章
|
Java 应用服务中间件 Apache
Tomcat 发布jsp报错
Tomcat 发布jsp报错
|
应用服务中间件 Perl
tomcat上传图片报错com.drew.imaging.jpeg.JpegProcessingException: JPEG data is expected to begin wit
tomcat上传图片报错com.drew.imaging.jpeg.JpegProcessingException: JPEG data is expected to begin wit
114 1
|
应用服务中间件
Tomcat报错:The required Server component failed to start so Tomcat is unable to start
Tomcat报错:The required Server component failed to start so Tomcat is unable to start
241 0
|
Java 应用服务中间件 容器
Tomcat报错 严重: A child container failed during start
Tomcat报错 严重: A child container failed during start
191 0
|
应用服务中间件 Perl
tomcat上传图片报错com.drew.imaging.jpeg.JpegProcessingException: JPEG data is expected to begin with 0xFFD
tomcat上传图片报错com.drew.imaging.jpeg.JpegProcessingException: JPEG data is expected to begin with 0xFFD
130 0
|
7月前
|
Java 应用服务中间件 Shell
Tomcat 安装配置教程及成功后,启动失败报错解决方案
Tomcat 安装配置教程及成功后,启动失败报错解决方案
138 0
|
7月前
|
前端开发 Java 应用服务中间件
springboot 升级(1.5.7.RELEASE升级到2.7.10) Tomcat启动报错
springboot 升级(1.5.7.RELEASE升级到2.7.10) Tomcat启动报错
|
7月前
|
Java 应用服务中间件
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
1592 1
|
7月前
|
Java 应用服务中间件
Tomcat 报错:The origin server did not find a current representation for the target resource
Tomcat 报错:The origin server did not find a current representation for the target resource
148 1
|
7月前
|
监控 应用服务中间件
idea debug模式启动Tomcat报错:Error running ‘tomcat8‘: java.net.SocketException “socket closed“
idea debug模式启动Tomcat报错:Error running ‘tomcat8‘: java.net.SocketException “socket closed“
238 0