使用 dynDNS 在本地机器上运行 Web 服务器

使用 dynDNS 在本地机器上运行 Web 服务器

我创建了一个帐户noip.com并创建了一个动态主机。(test.ddns.net)。在我的本地机器上,IP为192.168.2.128我在端口上运行我的 apache 网络服务器8080443阿帕奇

我创建了一个名为“test”的项目,其中包含文件“test.html”,其中我只是输出“hello world”。

在我的路由器(来自 telekom 的 speedport W921 V)上,我添加了一个端口转发规则,该规则将端口 80 上的所有传入内容转发到具有 ip 的本地计算机的端口 8080192.168.2.128

编辑:我还尝试将端口 8080 上的所有传入内容转发到具有 IP 的本地计算机的端口 8080192.168.2.196 转发端口

我还添加了 dynDNS 条目。 DynDNS 条目

如果我想在本地机器上访问我的项目,我只需 192.168.2.128:8080/test/test.html在浏览器中打开即可。但我如何才能从外部访问此站点?

我尝试过这样test.ddns.net/test/test.html 但是我收到“网站无法访问”的提示。

我也正在运行该程序DUC v4.1.1

为什么不起作用? 是 Speedport 上的端口转发不起作用还是我错过了其他步骤?

笔记:真正的域名不是“test.ddns.net”,我为了匿名而对其进行了审查。

编辑:我现在非常困惑。我的真实域名并非test.ddns.net如我所说的那样,它是完全不同的东西。但如果我test.ddns.net:8080/test/test.html从运行网络服务器的本地机器打开,那么我的网站就会hello world打开。这怎么可能???

答案1

nslookup test.ddns.net响应的127.0.0.1是,也就是localhost。因此,您甚至没有通过家庭网络发送数据包,而只是在您正在使用的计算机内部发送。

我尝试过这样 test.ddns.net/test/test.html 但是我得到“网站无法访问”的信息。这是因为您正在运行服务器离子端口 443 和 8080,而不是端口 80。

您应该确保拥有真正的公共 IPv4 地址。您可能使用的是 IPv6,当您访问 IPv4 服务器时,会通过运营商级 NAT这将允许您访问 IPv4 服务器,但不允许 IPv4 客户端访问您的 IPv4 服务器,因为您实际上没有公共 IPv4 服务器,因为它位于 NAT 后面,您无法配置它来为您执行端口转发。NAT 网关和路由器之间的数据传输将通过 IPv6 进行,并且您的路由器将只有一个与之关联的公共 IPv6 地址。这称为 Dual-Stack Lite。

在 Google 上搜索“我的 IP”,Google 会显示你的公共 IP。然后使用http://<IP 地址> 打开您的页面。如果打开了,则说明您的路由器的外部 IP 实际上是公共 IP 地址,并且端口转发正常,这意味着问题出在 no-ip.com 上。

答案2

你可以使用类似 ngrok 的工具来实现这一点。安装并运行:

ngrok http 8080

它会给你一个唯一的子域名,你可以使用它来访问你的服务器。不需要端口转发或任何类似的东西。

相关内容