如何为本地托管的应用设置外部访问权限? (苹果电脑)

时间:2018-07-20 02:38:51

标签: django macos networking

我无法设置具有外部访问权限的网络应用。我使用的是MacOs High Sierra,我有一个运行在端口8000上的django应用程序。端口8000在路由器设置中转发到了计算机的内部ip。

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

防火墙已禁用

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

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

我的意图是通过外部IP访问该应用程序。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您仅将Django开发服务器绑定到localhost127.0.0.1)。要监听所有可用的IP地址,请使用0.0.0.0,即:

python manage.py runserver 0.0.0.0:8000

答案 1 :(得分:0)

如果内部网络使用专用网络,并且位于NAT之后,则必须对其进行配置。您的NAT用自己的公用IP更改数据包的专用IP。然后,他将您的数据包发送到目的地,目标设备将回复NAT(公共IP),然后NAT将此响应发送到您局域网中的正确设备(具有私有IP)。这就是专用家庭网络可以到达世界末日的方式,这就是为什么专用家庭网络只有一个IP可以通过INTERNET(NAT的IP)看到的原因。

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

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

NAT

我建议您检查比我更清楚的有关NAT和反向NAT的课程。

祝你好运。

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