我无法设置具有外部访问权限的网络应用。我使用的是MacOs High Sierra,我有一个运行在端口8000上的django应用程序。端口8000在路由器设置中转发到了计算机的内部ip。
应用通过本地主机(localhost:8000
)加载
防火墙已禁用
应用程序通过内部ip(192.168.1.4:8000
)正确加载
通过外部ip(*.*.*.*:8000
)连接超时
我的意图是通过外部IP访问该应用程序。有什么想法吗?
答案 0 :(得分:0)
您仅将Django开发服务器绑定到localhost
(127.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的课程。
祝你好运。
(如果打开与Internet的连接,请注意服务器的安全性。)