本地托管的Django项目,可在本地网络长期使用

Locally hosted Django project for long-term use in local network

我目前正在实现一个Django web 应用程序,它只会在本地使用但会长期使用。我已经设法使用 python manage 0.0.0.0:myport 在我的本地计算机上启动 Django 服务器,并且我能够使用 MyLocalIPv4:myport.

从任何移动设备进行连接

在最好的情况下,我只想启动 Django 服务器一次,在移动设备和网络应用程序之间建立连接,然后让网络应用程序 运行 在该移动设备上运行一段未定义的长时间

现在我的假设是,MyLocalIPv4 会随着时间的推移而改变,因为它是一个动态 IP 地址,这将迫使用户(或者更糟的是我自己)查找新的 IP 地址并重新建立连接。

我的问题是:您是否知道关于如何使用另一个(可能是静态的)对 Web 应用程序的引用来避免此类行为的任何机制?您如何看待此 Web 应用程序的安全问题?

DNS 是要走的路。您想要的是一个可以映射到您的计算机 IP 地址的(内部)域。

您可以通过多种方式实现这一目标,但我建议您使用任何可用的工具。我假设您的家庭网络使用的是某种带有无线接入点的消费级家庭路由器。通常这种类型的硬件提供某种方法将机器的主机名“映射”到其内部网络 IP 地址。

例如,我在家里使用的是 RT-AC1200G+ 路由器,它运行内部 DNS 服务器并将我网络客户端的主机名映射到它们的 IP:

$ dig +short @192.168.1.2 samu-pc
192.168.1.70
$ ifconfig |grep 192.168.1.70
inet 192.168.1.70  netmask 255.255.255.0  broadcast 192.168.1.255

或者,更简单的解决方案之一是确保您的 IP 不会更改。您可以为您的 django-server 机器分配一个静态 IP,或者如果您想继续使用 DHCP - 使用您的路由器功能使用网卡的 MAC 地址对特定的静态 IP 地址进行静态分配。

免责声明:还有其他更“专业”的方法可以解决网络内的服务发现问题,但我认为它们对您的家庭网络设置来说太过分了。此外,如果您关心安全性,您应该考虑 运行 反向代理背后的 django 应用程序,前端带有 HTTP,只是为了确保您的内部网络中没有人试图做一些令人讨厌的事情。