为什么它不起作用?

为什么它不起作用?

现在的情况

  • 我有一个 LAN 网络,其中有 pc1 和 pc2
  • Glassfish 安装在 pc1 上
  • pc2可以浏览pc1的ip地址
  • 我已经通过 noip.com 设置了完全限定域名 (FQDN)
  • FQDN 指向路由器的公共 IP 地址

我的问题

如何从 LAN 外部 ping FQDN?所有对 FQDN 的 ping 操作均超时。

至少,对于初始步骤,我如何使 pc1(以 FQDN 为主机名的计算机)可访问,以便它至少可以响应 ping?

我只对使用 Glassfish 感兴趣,但如果需要进行故障排除,可以安装 Apache2 网络服务器或 Tomcat。

也可以看看:

https://java.net/projects/glassfish/lists/users/archive/2014-11/message/2

答案1

因此,首先,这与glassfish无关。如果您可以浏览IP地址,则glassfish工作正常。这纯粹是DNS问题。

为什么它不起作用?

您的路由器正在使用 NAT。这意味着如果 PC1 想要连接到 askubuntu.com,它将使用路由器公共 IP 和随机端口:IP_ADDRESS:PORT。Askubuntu.com 认为您的路由器正在从 IP_ADDRESS:PORT 请求网页。Askubuntu.com 将网页发送到您的路由器 (IP_ADDRESS:PORT)。然后,您的路由器将其转发到您的 PC1。您的路由器知道它必须将其转发到您的 PC1 而不是 PC2,因为您的 PC1 启动了连接。PC1 请求了网页。

就您的服务器而言,您希望互联网上的人们连接到您的服务器。因此,连接不会从 PC1 开始,而是从互联网开始。FQDN 指向您的路由器。您的路由器将收到对 IP_ADDRESS:80 上的网页的请求。由于连接是从互联网而不是从 PC1 开始的,因此路由器不知道必须将流量转发到 PC1。您的路由器将丢弃流量。

您该怎么做才能修复它?

您必须在路由器上配置静态端口转发,这样路由器就知道必须将其在 PUBLIC_IP:80 上接收的所有流量转发到 PC1_PRIVATE_IP:80。

如何在特定路由器上配置端口转发如下​​:http://portforward.com/english/routers/port_forwarding/

即使配置了此端口转发,您仍然无法 ping PC1 的 FQDN,因为 ping 使用另一个端口。HTTP(浏览)使用端口 80,PING 使用端口 1。

相关内容