如何从 LAN 访问我的公共 IP

如何从 LAN 访问我的公共 IP

我目前正在使用带有 DD-WRT 固件的 Netgear 路由器。

我有一台安装了摄像头应用程序的笔记本电脑。该应用程序使用公共地址和端口来操作摄像头。当我在工作时,该应用程序运行良好,但在家里却不行。在家里,我必须通过将 IP 地址更改为私有来更改配置。然而,在工作时,我必须将 IP 地址更改为公共。我一遍又一遍地这样做。

案例如下:

                    +-----------------+     +------------------+
                    | Camera 01       |     | Camera 02        |
                    | 192.168.1.10:80 |     | 192.168.1.11:80  |
                    | from port: 8081 |     | from port: 8082  |
                    +-----------------+     +------------------+
                                       \   /
                                        \ /
+-------------+       +------------------+-----------------+
|     ISP     |---/---| Router (WAN port)| Router(local IP)|
| 128.x.x.107 |       | 192.168.10.1     | 192.168.1.1     |
+-------------+       +------------------+-----------------+
  • 我可以从外部(例如在工作时)使用公共 IP 地址访问我计算机上的摄像头,例如输入 128.xx107:8081。

  • 我还可以通过输入 192.168.1.10 从 LAN 访问摄像机。

  • 不幸的是,我无法使用公共 IP 地址 128.xx107:8081 从 LAN 访问摄像机。有人知道该怎么做吗?

我已经阅读了很多有关 NAT 环回/反射/发夹结构的文章,但我对它的理解还不够深入,不足以解决我的问题。

使用以下规则,我能够通过 LAN 中的公共 IP 地址连接到我的路由器。

iptables -t nat -I PREROUTING -d 128.x.x.107 -j DNAT --to 192.168.1.1
iptables -t nat -I POSTROUTING -s 192.168.1.1 -j SNAT --to 128.x.x.107

...但是,如果在上面的规则中,我使用摄像头地址(192.168.1.10)而不是路由器地址(192.168.1.1),那么它将不起作用。

你能帮我吗?

答案1

需要 Nat 发夹。

https://wiki.mikrotik.com/wiki/Hairpin_NAT

基本上创建一个规则,任何通过 wan ip 进入你服务器的 lan ip 都会被重写为 lan ip <==> lan ip。

我自己需要在路由器上使用它来做各种事情(邮件、网络、ssh)

相关内容