【问题标题】:Locally hosted Django project for long-term use in local network本地托管的 Django 项目,可在本地网络中长期使用
【发布时间】:2020-10-28 19:30:00
【问题描述】:

我目前正在实现一个 Django Web 应用程序,该应用程序将仅在本地长期使用。我已经设法使用 python manage 0.0.0.0:myport 在我的本地机器上启动了 Django 服务器,并且我可以使用 MyLocalIPv4:myport 从任何移动设备进行连接。

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

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

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

【问题讨论】:

    标签: python django networking server ip-address


    【解决方案1】:

    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 地址进行静态分配。

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

    【讨论】:

    • 感谢您的意见!你知道我在哪里可以找到更多关于它的文档吗?
    • 您可以在他们的官方文档中找到更多关于部署 Django 的信息:docs.djangoproject.com/en/3.0/howto/deployment;更多关于 DNS 的信息可以在这里找到:cloudflare.com/learning/dns/what-is-dns;至于如何在本地网络中解析主机名,我认为这是特定于供应商的。 Afaik 它基于客户端提供的主机名,通过 DHCP 协议提供,但我不确定这个。
    猜你喜欢
    • 2020-10-27
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    相关资源
    最近更新 更多