从内部和外部网络连接到网络设备

网络工程 路由 ip 互联网
2021-07-23 17:32:13

我在一家安装闭路电视的公司工作,因此我们经常需要建立网络以允许远程查看这些设备。我注意到的一件事是,当您连接到网络(通过 WIFI 或 LAN)时,您无法使用外部 IP 连接到设备,因此我不得不将应用程序设置为具有 2 个“设备”,一个内部和一个外部。内部直接连接到设备的内部IP,外部通过公共IP和转发端口连接到设备。

我的问题是,有没有办法让您即使连接到内部网络也可以使用外部 IP 进行连接?

客户想要“简单”,并且有一些人无法弄清楚您在连接到网络时使用内部,而外部则不使用,因此如果可能的话,我想将其简化为一个按钮。

1个回答

您正在寻找的称为“NAT 发夹”或“NAT 反射”或“NAT 环回”

客户网关可能不支持它,配置它的确切方法当然取决于用作网关的盒子。

引自维基百科的这篇文章

NAT 环回

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

下面介绍一个示例网络:

Public address: 203.0.113.1. This is the address of the WAN interface on the router.
Internal address of router: 192.168.1.1
Address of the server: 192.168.1.2
Address of a local computer: 192.168.1.100

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

如果没有适用的 DNAT 规则可用,路由器将丢弃数据包。可以发送 ICMP 目标不可达回复。如果存在任何 DNAT 规则,地址转换仍然有效;路由器仍然重写数据包中的源 IP 地址。本地计算机 (192.168.1.100) 发送来自 192.168.1.100 的数据包,但服务器 (192.168.1.2) 收到来自 203.0.113.1 的数据包。当服务器回复时,该过程与外部发件人的过程相同。因此,LAN 网络内的主机之间可以通过公共 IP 地址进行双向通信。