Tomcat5.5如何监听IPV6和IPV4

这篇文章主要为大家展示了“Tomcat5.5如何监听IPV6和IPV4”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Tomcat5.5如何监听IPV6和IPV4”这篇文章吧。

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta  项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,***的Servlet 和JSP  规范总是能在Tomcat 中得到体现,Tomcat 5支持***的Servlet 2.4 和JSP 2.0 规范。因为Tomcat  技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat5.5如何监听IPV6和IPV4  tomcat5.5 第1张

1现象描述

当时的场景是在同一台机器上搭建了两个应用:应用1和应用2,使用相同的Tomcat5.5,只不过是启动的端口不同(8080和8088),发现两个应用监听的端口都在监听状态,但是通过telnet  127.0.0.1 port  都连接不上,很是奇怪。下图中的“8080”端口是可以通过telnet连接的,但是“8088”端口通过telnet是连接不成功的,连接时会报“无法连接到目标端口的错误”。

通过netstat命令查看两个端口的区别,发现8080端口是绑定到“0.0.0.0:8080”,而8088端口则没有这样的绑定,而是直接绑定到了IPV6的地址,这样的话,无论你怎么访问都是无济于事,如下图:

Tomcat5.5如何监听IPV6和IPV4  tomcat5.5 第2张

2解决办法

找到tomcat5.5目录下的conf\server.xml文件:

<Connector URIEncoding="utf-8" acceptCount="100" connectionTimeout="20000"  disableUploadTimeout="true"enableLookups="false"  maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443"/>

添加address="0.0.0.0",修改后内容如下:

<Connector URIEncoding="utf-8" acceptCount="100" connectionTimeout="20000"  disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150"  minSpareThreads="25" port="8080"  redirectPort="8443"  address="0.0.0.0"/>

后来深入了解了一下,才知道产生此问题的根本原因是Tomcat5.5在启动的时候,如果检测到系统支持IPV6,默认监听的是IPV6的端口,导致通过IPV4无法访问。修改配置文件添加address=“0.0.0.0”是为了确保tomcat5.5启动时监听的是IPV4协议栈下的任何端口。

IPV4协议监听任何地址应配置:0.0.0.0

IPV6协议监听任何地址赢配置:0:0:0:0:0:0:0:0

PS:Tomcat6及之后的版本不会出现问题,默认监听的是IPV4的地址端口。

以上是“Tomcat5.5如何监听IPV6和IPV4”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注蜗牛博客行业资讯频道!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram