如何将外部 DNS 地址重新路由为内部地址(仅在本地网络上)?

如何将外部 DNS 地址重新路由为内部地址(仅在本地网络上)?

所以我拥有自己的个人服务器来存储文件/媒体等。我目前已将我的计算机设置为与我的服务器进行同步,但存在一个问题。

当我在家庭网络上时,我必须使用内部 IP 来连接到我的服务器,但是当我通过 Internet 连接时,我使用我设置的域名重定向到我的家庭网络的外部 IP。

我想知道是否有办法设置它,以便 Windows 检测到我何时使用家庭网络,并将我的域名重定向到我的内部 IP,但是仅有的如果我使用家庭网络,则当我不使用时,其行为就正常。

答案1

尽管你已经回答了你自己的问题使用软件解决方案,您似乎正在描述:

我想知道是否有办法设置它,以便 Windows 检测到我何时使用家庭网络,并将我的域名重定向到我的内部 IP,但是仅有的如果我使用家庭网络,则当我不使用时,其行为就正常。

实际上是路由器/网络的概念,称为NAT 环回(又名:NAT 发夹或 NAT 反射)。这适用于任何网络连接;有线以太网或 Wi-Fi。以下是维基百科对 NAT 环回的解释摘录:

NAT 环回,也称为 NAT 发夹或 NAT 反射,是许多消费级路由器的一项功能,允许从本地网络内部通过公共 IP 地址访问服务。例如,这消除了对网络内主机和网站公共网络使用单独域名解析的需要。

下面描述了一个示例网络:

  • 公共地址:203.0.113.1。这是路由器上WAN接口的地址。
  • 路由器内部地址:192.168.1.1
  • 服务器地址:192.168.1.2
  • 本地计算机的地址:192.168.1.100

如果计算机将数据包发送到公共地址 192.168.1.100,则该数据包通常会被路由到默认网关(路由器),除非计算机的路由表中设置了明确的路由。具有 NAT 环回功能的路由器会检测到这是203.0.113.1其 WAN 接口的地址,并将数据包视为来自该接口。它根据目标的 DNAT(端口转发)规则确定该数据包的目标。如果数据被发送到端口 80,并且存在指向 的端口 80 的 DNAT 规则192.168.1.2,则该地址的主机将接收数据包。

因此,我认为 NAT 环回是无需额外软件即可在操作系统级别实现的任何东西;希望证明我错了。但是——取决于路由器的品牌和型号——它应该是可以在路由器上设置的东西。

我相信其他路由器固件如DD-WRTOpenWRT番茄支持 NAT 环回,因此可能值得研究一下支持任何这些固件的优质路由器,看看是否可以进行调整以满足您的需求。

答案2

事实证明,我找到了一个可以正常工作的东西。这个名为 Switch Location 的程序是免费的,它会根据您连接的网络的 ssid 切换您的主机文件。现在,这意味着这个程序只有在您使用 Wi-Fi 时才会工作,但对于我的应用程序来说,这就是我所需要的。免费程序可以在这里找到

相关内容