Django 如何为本地托管的应用程序设置外部访问?(陆委会)

Django 如何为本地托管的应用程序设置外部访问?(陆委会),django,macos,networking,Django,Macos,Networking,我在设置具有外部访问权限的web应用程序时遇到问题。我使用的是MacOs High Sierra,我有一个django应用程序在8000端口上运行。端口8000在路由器设置中转发到机器的内部ip 通过本地主机加载应用程序(localhost:8000) 防火墙已禁用 通过内部ip正确加载应用程序(192.168.1.4:8000) 通过外部ip连接超时(*.*:8000) 我的目的是通过外部ip访问应用程序。有什么想法吗?您只是将Django开发服务器绑定到localhost(127.0.0.1

我在设置具有外部访问权限的web应用程序时遇到问题。我使用的是MacOs High Sierra,我有一个django应用程序在8000端口上运行。端口8000在路由器设置中转发到机器的内部ip

通过本地主机加载应用程序(
localhost:8000

防火墙已禁用

通过内部ip正确加载应用程序(
192.168.1.4:8000

通过外部ip连接超时(
*.*:8000


我的目的是通过外部ip访问应用程序。有什么想法吗?

您只是将Django开发服务器绑定到
localhost
127.0.0.1
)。要侦听所有可用IP地址,请使用
0.0.0.0
,即:

python manage.py runserver 0.0.0.0:8000

如果您的内部网络使用专用网络,并且您在NAT后面,则必须对其进行配置。您的NAT将数据包的私有IP更改为自己的公共IP。然后他将数据包发送到目的地,目的地设备回复NAT(公共IP),然后NAT将此响应发送到LAN中的正确设备(使用专用IP)。这就是为什么私人家庭网络可以到达世界的尽头,这就是为什么私人家庭网络只有一个IP(NAT的IP)

如果您想访问您的内部WEB服务器,您必须执行反向NAT。打开NAT中的端口(本例中为8000)。然后将其配置为将数据包重定向到良好的内部设备(服务器的专用IP)

然后使用端口8000从INTERNET连接到NAT的公共IP。完成了

我建议你们检查一下关于NAT的课程,把NAT颠倒过来,这样会比我更清楚

祝你好运


(如果您打开与internet的连接,请注意服务器的安全)。

这有助于通过内部IPIf进行访问,如果它与本地主机和192.168.1.4兼容,但与外部IP不兼容;这意味着您的NAT/防火墙配置有问题。