使用dynDNS在本地计算机上运行webserver


0

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

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

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

编辑:我也尝试使用IP 192.168.2.196将端口8080上的所有内容转发到本地计算机的端口8080 转发端口

我还添加了dynDNS条目。 DynDNS Entry

如果我想在我的本地机器上访问我的项目,我只需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打开了。这怎么可能???


“但是,如果我从运行网络服务器的本地机器打开test.ddns.net:8080/test/test.html,那么我的网站将打开hello world。这怎么可能?” 这表明Web上的DNS服务器确实解析为您的公共 IP地址,这是一个好兆头。这意味着您的DynDNS-Serup很可能是正确的。问题似乎与端口映射/转发有关。但Speedport的参赛作品看起来不错。
Daniel F

但这test.ddns.net不是我的域名。我注册类似edwardblack.ddns.net,而不是test.ddns.net。这就是为什么我现在很困惑。有人可以解释为什么我可以通过这个链接访问我的项目!?
黑色

不,不,你误解了我,我的意思是,如果你可以使用edwardblack.ddns.net:8080打开你的网站,那么你的DNS设置正确。如果你然后无法打开edwardblack.ddns.net:80 AKA edwardblack.ddns.net那么端口转发就会出现问题。你有真正的公共IP地址吗?
Daniel F

1
我对此一无所知。也许这是一个与你的知识产权相呼应的特殊条目,但那是我第一次见到这样的东西。做一个ipconfig /flushdns在控制台(Windows)和重新启动浏览器,看看该域名仍然表现那样
丹尼尔˚F

1
我看到:test.ddns.net等于127.0.0.1,做一个nslookup test.ddns.net这是本地主机地址,这是你的电脑
丹尼尔F

Answers:


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。

谷歌为“我的IP”,谷歌将向您显示您的公共IP。然后使用http:// <IP-address >打开您的页面。如果它打开,那么你的路由器的外部IP实际上是公共IP地址,并且端口转发很好,这意味着问题在于no-ip.com。


抱歉,我吃了test.ddns.net:8080/test/test.html。我有一个真正的公共IPv4地址,它也显示在no-ip.com
Black

1
可能是no-ip.com正在显示NAT网关的IP地址,这是您无法配置的服务器。
Daniel F

我想它不起作用,因为端口转发在speedport W 921 v上不起作用,很多人报告它不适用于这个路由器。
黑色

感谢您的信息,我会在下班后尝试这个并报告。但我真的认为这是因为我的蹩脚的speedport w 921 v有端口转发问题
Black

1
如果事实证明Speedport仅在端口80上有此问题,但端口443有效,那么您可以通过将该问题转发到8080来解决您的问题。在这种情况下,您需要为您的Apache服务器创建一个证书,可以免费使用LetsEncrypt。我不完全确定您是否可以在没有端口80工作的情况下创建证书,但您可以使用多种方法。无论如何,https更适合访问你的家。此外,不要忘记购买自己的域名并不昂贵,即悬停或名称收录(10€/年),并允许您设置DNS记录。
Daniel F

1

你可以使用像ngrok这样的东西。安装并运行:

ngrok http 8080

它将为您提供一个可用于访问服务器的唯一子域。无需端口转发或任何类似的东西。


但这只适用于局域网,对吗?我的路由器如何知道在没有端口转发的情况下发送pakets的位置。嗯
黑色

1
@EdwardBlack不,它可以在任何地方工作。路由器不需要知道它。ngrok客户端充当代理。它连接到他们的服务器,他们的服务器接收来自外部世界的所有连接...并将消息发送到客户端(它接收它,因为它启动连接并保持连接等待消息)并将请求代理到您的应用程序和将响应发送回服务器,然后服务器将其发送回请求者。试一试吧。
khattam 2016年

现在我明白它的工作原理谢谢!但这也意味着整个流量都是不安全的,因为中间有一个人(代理人)。但这是一个很好的解决方案,我会试一试并报告。
黑色

1
@EdwardBlack是的,“中间人”是官方的ngrok服务器。因此,如果您有高度机密的信息,您可能不想使用它。
khattam
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.