Tomcat 服务器无法“外部”工作

2023-12-03

我已经设置了 Tomcat 服务器并且它可以在本地主机上运行,​​但是我无法在外部运行它。我需要更改一些设置吗? 我尝试了一切,但它似乎在其他地方不起作用......这很奇怪,因为它在本地主机上工作得很好。


因此,您正在 spring boot 应用程序中运行 tomcat,从 maven spring boot 插件启动,它在本地主机上侦听,但无法使用您的 LAN IP 地址访问。

请注意 - SO 上的人们热衷于提供帮助,但获取必要信息不应该是一场寻宝活动。

First

检查tomcat正在监听哪个IP地址和端口:spring boot日志通常会告诉你主机的名称,例如mymac.local,并且将显示端口,端口:8080 (http), :

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.2.3.RELEASE)


2015-04-29 09:14:33.269  INFO 7031 --- [main] hello.Application  Starting Application v0.1.0 on mymac.local with PID 7031 (/Users/foo/Development/java/springframework/gs-spring-boot/complete/target/gs-spring-boot-0.1.0.jar started by foo in /Users/foo/Development/java/springframework/gs-spring-boot/complete)
2015-04-29 09:14:35.072  INFO 7031 --- [main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2015-04-29 09:14:35.506  INFO 7031 --- [main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2015-04-29 09:14:35.507  INFO 7031 --- [main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.0.20

通常,tomcat 会开始侦听所有 IP 地址 (0.0.0.0),因此奇怪的是,这对您不起作用。

另一种方法是使用netstat。对于 Max/Linux:

$ netstat -an  | grep 8080
tcp46      0      0  *.8080                 *.*                    LISTEN     

在窗户上

C:\> netstat -an | find "8080"    
  TCP    0.0.0.0:8080            0.0.0.0:0              LISTENING
  TCP    [::]:8080               [::]:0                 LISTENING

如果您的应用程序正在侦听 0.0.0.0 或真实 IP(如 192.168.0.100 等),那么您可能会以某种方式在网络上受到防火墙或阻止。

如果您的应用程序仅在 localhost/127.0.0.1 上侦听,那么您需要告诉 tomcat 使用真实 IP,如下问题:如何配置与 Spring 集成的嵌入式 Tomcat 来侦听除 localhost 之外的 IP 地址请求?

Secondly使用简单的客户端(例如curl/telnet/netcat)进行基本连接。浏览器,尤其是 IE,可能会受到 Windows 组策略等限制,这将阻止许多在很少或没有信息的情况下工作。

所以在另一台机器上,看看是否可以telnet到tomcat端口(假设tomcat运行在192.168.0.100上):

$ telnet 192.168.0.100 8080
Trying 192.168.0.100...
Connected to localhost.
Escape character is '^]'.

如果您看到连接的消息表明您已连接,因此如果浏览器无法正常工作,则可能存在其他问题。

如果立即被拒绝,则两台计算机之间没有路由/连接。这通常意味着您的 tomcat 没有侦听正确的 IP 地址

$ telnet 192.168.0.100 8080
Trying  192.168.0.100...
telnet: connect to address  192.168.0.100: Connection refused
telnet: Unable to connect to remote host

如果它只是挂在连接消息上,那么它可能是防火墙。

$ telnet 192.168.0.100 8080
Trying 192.168.0.100...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat 服务器无法“外部”工作 的相关文章

随机推荐

  • Google URLShortener API 返回 ipRefererBlocked

    我正在尝试将 Google URL 缩短 API 与 PHP 结合使用 apiKey ABC url http www stackoverflow com postData array longUrl gt url jsonData jso
  • 正则表达式匹配除空格之外的单个字符

    我需要匹配一个不是空格的单个字符 但我不知道如何使用正则表达式来做到这一点 以下应该足够了 如果您想将其扩展到除空白之外的任何内容 换行符 制表符 空格 硬空格 s or S Note this is a CAPITAL S
  • 将数据从操作传递到另一个操作

    如何通过 RedirectAction 方法将模型从 GetDate 操作传递到另一个 ProcessP 操作 这是源代码 HttpPost public ActionResult GetDate FormCollection values
  • MobileNetV2 的 Keras 和 TensorFlow Hub 版本之间的差异

    我正在研究一种迁移学习方法 并且在使用 MobileNetV2 时得到了非常不同的结果keras applications以及 TensorFlow Hub 上提供的一个 这对我来说似乎很奇怪 因为两个版本都声称here and here从
  • PHP:如何使用数组索引访问数组元素值[重复]

    这个问题在这里已经有答案了 如何使用数组索引访问数组元素值 我不知道 动态 中有什么 所以我想动态访问 pageCount 值 数组值是您正在寻找的功能 例子
  • 改进多节点集群上的 h2o DRF 运行时

    我目前正在跑步h2o的 DRF 算法是一个 3 节点 EC2 集群 h2o 服务器跨越所有 3 个节点 我的数据集有 100 万行和 41 列 40 个预测变量和 1 个响应 我用R控制集群和 RF 调用的绑定如下 model h2o ra
  • PLS-00306:调用“OUTPUT_ARRAY”时参数的数量或类型错误

    我被这个错误困住了 真的不知道如何修复它 也许我以不正确的方式传递数组 这是主要的 sql 文件 DECLARE v array length NUMBER v array length BEGIN DECLARE TYPE number
  • 在 wpf 中绘图时对线条进行动画处理

    XAML
  • 通过依赖注入模拟 C++ 类

    假设你正在测试课程A它有一个依赖注入 of B其中有一个依赖注入C 所以你嘲笑B但它唯一的构造函数需要注入C 所以你必须嘲笑C以及注入模拟的C进入被嘲笑的地方B然后才将其注入A 如果有 5 个连续的依赖关系怎么办 有哪些替代方案 I use
  • 完美的角色无限旋转

    我正在尝试使用这个角色 代替加载旋转器 这是我到目前为止所得到的 spinner after animation rotating 2s linear infinite content font size 60px display inli
  • 将数字添加到子图

    我是 matplotlib 的新手 正在尝试了解如何将数字添加到子图中 我有三个不同的函数 它们输出一个数字 def plot fig 1 vars args f ax put subplots do something ax plot x
  • 在数组中查找模式的最有效方法?

    最近我尝试使用C来查找一组数字中的众数 当集合很小时 我的代码可以做得很好 这是我的代码 int frequency 10001 This array stores the frequency of a number that betwee
  • 使用灯具加载数据时是否会调用模型 save() 方法?

    我试图在模型为空时从另一个字段自动生成一个模型 这是代码 class Position RichText name models CharField max length 200 slug models SlugField null Tru
  • 格拉姆-施密特正交化

    给定一个具有独立列的矩阵 A 不一定是方阵 我能够应用 Gram Schmidt 迭代并使用 Matlab 函数为其列空间 以正交矩阵 Q 的形式 生成正交基qr A 1 1 1 0 1 2 Q R qr A and then gt gt
  • C# 中的 TraceRoute 和 Ping

    有人有 C 代码可以方便地对目标计算机执行 ping 和跟踪路由吗 我正在寻找一个纯代码解决方案 而不是我现在正在做的事情 即调用 ping exe 和tracert exe 程序并解析输出 我想要更坚固的东西 鉴于我今天必须编写一个 Tr
  • 在设备上调试 Ionic 3 代码

    我正在测试 Ionic 3 到目前为止一切正常 我希望在 ionic Lab 上调试 TS 代码 因此我在 package json 中添加了下一个配置 config ionic source map source map 之后 我能够看到
  • 部分视图和渲染部分视图有什么区别?

    我对 ASP NET MVC 很陌生 请让我知道哪里应该使用部分视图以及哪里应该渲染部分视图 提前致谢 此链接可能有帮助 Html RenderPartial 此方法结果将直接写入 HTTP 响应流 这意味着它使用与当前网页 模板中使用的相
  • QWebEnginePage.print 与 QPrintPreviewDialog 导致空预览

    我有一个曾经使用过的程序QWebKit在对话框中显示和打印自定义生成的 HTML 报告 现在 我想将整个内容转换为QWebEngine 到目前为止一切正常 只有打印不行 到目前为止我用过QWebView print 将整个 HTML 数据交
  • JSF 2.0:设置验证时,复合组件内的 h:inputText 因非 String 对象而失败

    在支持 bean 中 Min 3 Integer foo 如果我有这样的形式
  • Tomcat 服务器无法“外部”工作

    我已经设置了 Tomcat 服务器并且它可以在本地主机上运行 但是我无法在外部运行它 我需要更改一些设置吗 我尝试了一切 但它似乎在其他地方不起作用 这很奇怪 因为它在本地主机上工作得很好 因此 您正在 spring boot 应用程序中运