使用公网IP访问内部IP

wil*_*lvv 39 routing webserver

我有一个带有公共 IP 地址 ( 201.206.x.x)的 DSL 调制解调器,我的内部网络中有一个 Web 服务器 ( 192.168.0.50)。

我设置调制解调器将请求转发到端口 80 到我的网络服务器,因此,如果我201.206.x.x从网络外部访问,它会显示我的网页,如果我192.168.0.50从网络内部的计算机访问,也会发生同样的情况。

现在,问题是当我尝试201.206.x.x从内部网络访问时,浏览器尝试连接到 DSL 调制解调器配置,而不是将我的请求重定向到我的 Web 服务器。

我必须在调制解调器中更改哪些设置才能设置此重定向?

小智 21

问题是数据包重写通常只能在穿越防火墙时发生。一般而言,当请求来自该请求将被重写到的同一网络到达时,路由器无法执行必要的重写。此问题的常见解决方案是在网络外部放置一个 Web 代理,通过防火墙将请求循环返回。

我怀疑您的具体问题是您想通过其 DNS 主机名访问该网站。您可以使用“水平分割”DNS 来处理该问题,因此它会注意请求的来源并适当地回答:如果请求来自您的网络内部,它会将 192.168.0.50 分发给来自您的请求网络和公共 IP 给其他人。

这些建议中的任何一个都可以在您网络之外的任何主机上实施,例如(免费)Amazon EC2 微型实例。

  • 我通过在我自己的 DNS 服务器(也在我的家庭网络上运行)上添加与我的外部 dyndns 名称相同名称的 A 记录,在我自己的家庭网络上解决了这个问题。A 记录指向我家庭网络中的正确位置,反向 PTR 记录也是如此。但当然,并不是每个人都在运行自己的家庭 DNS…… (3认同)

Pur*_*ome 14

我会说@Insyte 当他/她谈论这个问题是 DNS 解析问题时,他/她正在做某事..这意味着问题是数据包重写(再次阅读@Insyte 帖子以获得该解释)。

假设您有以下设置:

  1. 公网IP: 201.206.x.y
  2. 私有IP: 192.168.0.50
  3. IP 上所有 80(和 443,如果您正在执行 SSL)的端口转发201.206.x.y192.168.0.50

然后,当您在内部网络中时,在浏览器中键入以下内容:

http://www.yourwebsite.com
Run Code Online (Sandbox Code Playgroud)

并发生错误。所以,解决方案:破解你的主机文件。

在 Windows 上,转到C:\windows\system32\drivers\etc\hosts (注意,该文件没有扩展名)。在 Linux 上,该文件位于/etc/hosts.

如果在记事本中打开该文件,则可以看到用于覆盖 DNS 的所有条目。如果您希望更新该文件,您需要以管理员权限打开记事本(或您用来编辑该文件的任何程序)——否则您将无法保存该文件。

将此添加到您的主机文件中:

192.168.0.50 www.yourwebsite.com

然后重新启动浏览器,输入 URL 和 violà! 它正在工作。所以这意味着,您的浏览器不依赖您的 DNS 将您的域解析为 IP。相反,我们覆盖了这个并说:浏览器,只需转到我的内部 IP 获取该域名,而不是向 DNS 询问 IP 地址

如果你在办公室,那么你可以让所有需要访问这个内部网站的人,破解他们的主机文件,或者如果你有一个内部 DNS,那么你可以在其中添加一个条目。

另一个想法是拥有一个内部代理服务器(用于所有网络冲浪等),然后破解代理服务器上的主机文件。这意味着你的浏览器会说,代理,你能不能把资源给我,http://www.mywebsite.com代理说是的,因为我被告知要忽略那个域的 DNS,我只会给出已经硬编码的 IP我的主机文件

  • 经常通过内部*或*外部网络访问同一站点的笔记本电脑或智能手机怎么样? (3认同)

MaQ*_*eod 9

这是某些路由器处理来自内部地址的公共地址的流量的方式的一个常见问题 - 它们不遵循与来自网络外部的请求相同的端口转发规则。您需要在路由器中寻找的是NAT 反射。这将允许路由器处理对公共 IP 的内部请求,以使用相同的端口转发规则,就好像请求来自网络外部一样。


HTD*_*chy 2

如果您能给我您的调制解调器品牌和型号,我可以更好地帮助您......

但这里发生的情况是,通常路由器或调制解调器配置页面只应在访问其内部 IP (192.168.0.1) 时出现

但这里似乎发生的是,它识别传入请求(201.206.xx)来自内部,因此决定为您提供配置页面,而不是到您的网络服务器的正常路由......

现在,如果您使用的是消费者级调制解调器,您可能无法更改此设置(抱歉)

但也许你可以:尝试看看你的管理配置页面中是否有“监听”设置

您可以尝试将管理页面更改为另一个端口或限制其侦听的地址