Tomcat 似乎无法在全新 CentOS 6.5 上立即运行。我是否遗漏了什么?

Tomcat 似乎无法在全新 CentOS 6.5 上立即运行。我是否遗漏了什么?

我安装 CentOS 6.5,选择“Web 服务器”包,其他一切都保持默认。

我先执行service tomcat6 start,然后执行 ,ss -ntlp以确认 Tomcat 正在监听端口 8080,如默认 Tomcat 6 /etc/tomcat6/server.xml 中指定的那样。这是输出:

State       Recv-Q Send-Q                                             Local Address:Port                                               Peer Address:Port
LISTEN      0      128                                                           :::111                                                          :::*                                users:(("rpcbind",1012,11))
LISTEN      0      128                                                            *:111                                                           *:*                                users:(("rpcbind",1012,8))
LISTEN      0      100                                                           :::8080                                                         :::*                                users:(("java",1561,37))
LISTEN      0      128                                                           :::22                                                           :::*                                users:(("sshd",1216,4))
LISTEN      0      128                                                            *:22                                                            *:*                                users:(("sshd",1216,3))
LISTEN      0      128                                                    127.0.0.1:631                                                           *:*                                users:(("cupsd",1102,7))
LISTEN      0      128                                                          ::1:631                                                          :::*                                users:(("cupsd",1102,6))
LISTEN      0      100                                                          ::1:25                                                           :::*                                users:(("master",1292,13))
LISTEN      0      100                                                    127.0.0.1:25                                                            *:*                                users:(("master",1292,12))
LISTEN      0      128                                                           :::33081                                                        :::*                                users:(("rpc.statd",1030,11))
LISTEN      0      128                                                            *:33657                                                         *:*                                users:(("rpc.statd",1030,9))
LISTEN      0      1                                               ::ffff:127.0.0.1:8005                                                         :::*                                users:(("java",1561,39))
LISTEN      0      50                                                            :::8009                                                         :::*                                users:(("java",1561,38))

这是否意味着 Tomcat 只监听 IPv6,而不是同时监听 IPv6 和 IPv4?为什么它不能“开箱即用”地正常工作?

答案1

这取决于 sysctl 的值net.ipv6.bindv6only

如果将其设置为 0,则 IPv6 INADDR6_ANY 地址 ( ::) 上的侦听器将同时侦听 IPv6 和 IPv4 连接,除非应用程序本身也在套接字上设置了 IPV6_V6ONLY。

如果将其设置为 1,则此类监听器将仅监听 IPv6 连接。

# sysctl net.ipv6.bindv6only
net.ipv6.bindv6only = 0

测试应用程序是否正在监听 IPv4 应该很简单......

telnet 127.0.0.1 8080

相关内容