我正在使用
运行Django开发服务器python manage.py runserver 0.0.0.0:8000
可以从本地机器完全访问,但不能从外部世界访问。 Windows 8.1,Python 3.4.3,Django 1.8.4。
我尝试了另一个端口(7500,50001)并在Windows防火墙上明确允许该端口(通过入站规则)。 我也在不同的机器(AWS EC2)上运行服务器,并在那里允许端口,结果相同。
Netstat表示该程序正在侦听指定的端口,因此理论上它应该正常工作。 我的机器也在settings.py中的ALLOWED HOSTS列表中。
我知道开发服务器不够安全,不能用于生产,但是我做了一个小小的短期事情,不值得为正确的部署而烦恼。那么,任何想法可能是什么问题?
答案 0 :(得分:0)
在我的不是Windows的方框中,但在这种情况下,我认为用ifconfig
命令搜索我的ip并没有什么区别:
# ifconfig
eth0 Link encap:Ethernet
inet addr:172.16.0.2 Bcast:172.16.0.255 Mask:255.255.255.0
inet6 addr: fe80::215:f2ff:fef4:678c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:73452 errors:0 dropped:0 overruns:0 frame:0
TX packets:52360 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:80778194 (77.0 MiB) TX bytes:5084041 (4.8 MiB)
然后,尝试启动服务器以打听该ip:
./manage.py runserver 172.16.0.2:8000
端口:8000在我的防火墙处打开,它运行良好。
最有可能的是,Windows中的等效命令称为ipconfig。
为了从外部世界(not recommended for any reason)到达服务器,请查看术语" port forwarding"在防火墙中执行内部IP。