我在局域网上有 10 台计算机,其中 1 台是 Web 应用程序的服务器。所有 9 台计算机都可以连接到服务器进行工作。现在我们在另一台计算机上建立了宽带互联网连接,并与其他计算机共享,以便通过 VPN 访问应用程序。现在我们无法连接到本地服务器的 Web 应用程序。可能存在什么问题及其可能的解决方案?
谢谢。
答案1
对于 Web 应用故障排除,您需要单独检查每个步骤。这意味着使用dig
检查 DNS 请求,curl
并tcpdump
(在客户端和服务器上)检查 TCP 连接,strace
以检查应用在收到请求时会做什么。您应该在第一次出现意外行为时停止
您还需要了解(并添加到您的问题中)DNS 请求阶段的超时与具有错误答案(例如 NXDOMAIN 或错误 IP 地址)的响应之间的区别。
如果您的名称服务器返回错误答案,您在尝试连接 IP 地址时可能会超时,但如果 IP 地址在网络上处于活动状态并且其防火墙没有丢弃数据包,那么您将立即收到 RST 数据包。它们之间的区别很重要。
如果您在 TCP 连接阶段遇到超时,则可能是由于客户端的出站防火墙规则、服务器的入站规则、服务器的出站规则或客户端的入站规则造成的。tcpdump
在客户端和服务器上运行并查看防火墙日志将有助于您区分这些情况。
如果您成功连接并发送请求,但您的 Web 应用正在执行耗时较长的操作,因此从未发送响应,则您将再次超时。此时您甚至可能会收到 RST 数据包。
DNS 阶段超时、TCP 连接阶段超时和发送 HTTP 请求后的超时之间的差异是重要的第一步。它可以缩小问题的范围,甚至可以准确地告诉你问题是什么。