当前位置: 首页 > news >正文

tomcat报错:java.net.SocketException: Permission denied[http-nio-80]

tomcat报错:java.net.SocketException: Permission denied["http-nio-80"]


问题:使用非root账户tomcat启动tomcat报错:


19-Sep-2016 15:08:27.168 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-80"]
19-Sep-2016 15:08:27.179 SEVERE [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-nio-80"]
 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:339)
        at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:737)
        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:457)
        at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:120)
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:567)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:851)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:576)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:599)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)


19-Sep-2016 15:08:27.180 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-80]]


 org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-80]]
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:567)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:851)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:576)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:599)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:962)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        ... 12 more
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:339)
        at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:737)
        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:457)
        at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:120)
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
        ... 13 more


问题分析:在centos上只有root用户才可以使用1024以下的端口号,其余用户不能


2.解决方案


方法①修改Tomcat的server.xml配置文件,将端口修改为8081(或者其他1024以上的端口号,不能与本机上的其它Tomcat端口冲突)


vim /usr/local/apache-tomcat-8.0.52/conf/server.xml
    <Connector port="8081" protocol="HTTP/1.1" 
               connectionTimeout="30000" 
               maxThreads="2000"
               acceptCount="2000"
               URIEncoding="UTF-8"
               redirectPort="9143" />
    <!-- A "Connector" using the shared thread pool-->


方法②修改端口后,使用root用户登录服务器,执行端口重定向命令:iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8081


意思就是当访问80端口时重定向到8081端口,这样,我们可以改成任何我们需要的端口啦。


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


切换到tomcat账号,启动tomcat服务

转载于:https://www.cnblogs.com/reblue520/p/6239707.html

相关文章:

  • 入手阿里云新服务器的部署NODE
  • C#组件系列——又一款Excel处理神器Spire.XLS,你值得拥有
  • 运行时添加log4j2的appender
  • win产品密钥大搜集
  • PowerShell查询AD域内长期没有登录的计算机对象
  • 取distinct数据同时还取其他字段
  • RHCS+Conga+GFS+cLVM共享存储的高可用性web集群
  • 【20160924】GOCVHelper综述
  • Maven 自定义 archetype
  • 谈谈一些有趣的CSS题目(六)-- 全兼容的多列均匀布局问题
  • 7.12 Java-based container configuration (基于java的容器配置)
  • 从根开始的DNS服务器架构,让整个互联网掌控于你的手中
  • 设计模式(五)简单工厂模式+工厂方法模式
  • CentOS 6.5升级Python和安装IPython(亲测可用)
  • Python 学习笔记 - 面向对象(封装,继承和多态)
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • (三)从jvm层面了解线程的启动和停止
  • css布局,左右固定中间自适应实现
  • echarts花样作死的坑
  • Golang-长连接-状态推送
  • in typeof instanceof ===这些运算符有什么作用
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • JS笔记四:作用域、变量(函数)提升
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • MySQL-事务管理(基础)
  • PAT A1017 优先队列
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • python docx文档转html页面
  • Python实现BT种子转化为磁力链接【实战】
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 精彩代码 vue.js
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 使用common-codec进行md5加密
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 思维导图—你不知道的JavaScript中卷
  • 通过git安装npm私有模块
  • 用Canvas画一棵二叉树
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​虚拟化系列介绍(十)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (1)STL算法之遍历容器
  • (27)4.8 习题课
  • (3)STL算法之搜索
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (篇九)MySQL常用内置函数
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (十八)三元表达式和列表解析
  • (四)JPA - JQPL 实现增删改查
  • (已解决)什么是vue导航守卫
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转) RFS+AutoItLibrary测试web对话框