我无法从外部(通过ip)连接到tomcat9
我在
之后禁用了tcp6(添加到/etc/sysctl.conf)net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
netstat -nlp输出:
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 7460/java
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 7460/java
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 7460/java
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1118/nginx
server.xml连接器块:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
address="0.0.0.0" />
我还尝试将useIPVHosts =“true”添加到<Connector>
并将resolveHosts =“true”添加到server.xml中的<Valve>
块,但仍然没有。
我会感谢您的所有答案)
答案 0 :(得分:1)
根据您提供的内容,您的Tomcat服务器正在家庭网络中的笔记本电脑上运行。你的朋友试图通过互联网访问这个但是无法访问。假设您的Tomcat配置正确,我们可以将其缩小到几个区域。
无法通过互联网访问您的服务器:
您不仅可以为笔记本电脑提供公共IP,还希望它可以在互联网上运行。家庭网络的设置方式是保留大公司(Comcast,Verizon等)支付的公共IP地址。您的路由器将被分配一个可从Internet访问的公共IP地址,并且您的所有内部节点(电话,计算机,笔记本电脑等)将通过路由器本身处理的NAT分配给它们的内部(192.168.x.x)地址。要通过Internet访问内部节点,您必须登录路由器并启用某些端口转发。您还应该启用路由器应允许您使用的动态DNS(http://yourserver.something.something
而不是 router IP
)。对于路由器中的端口转发,您应该有一个选项来设置(例如)端口50001 - &gt; IPofTomcat端口8080.您的朋友将通过您的路由器访问您的网页IP / 50001 / jspname.jsp
您可能会从ISP获得静态IP,但之后您正在查看月费(使用端口转发和dynamicDNS)。您的路由器也应该能够处理保留的IP。
防火墙问题:
确保没有可能影响服务器/路由器上的流量的入站/出站规则。我怀疑你的路由器默认会有这些(不是一件好事;)),但是如果你知道端口转发设置正常并且正常工作,这是需要考虑的事情。
其他评论:
如果有其他人去看这篇文章,我会说这只是为了一般知识。确保在托管家庭网络服务器之前完成这些步骤。