现在的情况
- 我有一个 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。