为什么我的Django服务器只能在本地访问?

时间:2017-03-24 17:36:45

标签: django ssl https

所以我使用django-sslserver运行我的服务器(pip install django-sslserver)

python manage.py runsslserver xx.xx.x.xx:443

现在我可以访问服务器本身的网站,但如果我尝试从另一台机器访问它,它就会超时。查看命令提示符,服务器似乎甚至不知道来自其他计算机的请求。

但是如果我用

运行服务器
python manage.py runserver xx.xx.x.xx:80

我可以从两台机器上访问它没问题。有了ssl,我尝试了很多端口,没有区别。这是启动时的输出(更换了IP):

c:\Users\Foo\Project>python manage.py runsslserver xx.xx.x.xx:443
Validating models...

System check identified no issues (0 silenced).
March 24, 2017 - 13:24:59
Django version 1.10.6, using settings 'Project.settings'
Starting development server at https://xx.xx.x.xx:443/
Using SSL certificate: C:\Users\Foo\AppData\Local\Programs\Python\Python35\lib\site-packages\sslserver\certs\development.crt
Using SSL key: C:\Users\Foo\AppData\Local\Programs\Python\Python35\lib\site-packages\sslserver\certs\development.key
Quit the server with CTRL-BREAK.

2 个答案:

答案 0 :(得分:0)

我的第一个猜测是你的两台机器在不同的网络上,并且在网络地址转换(NAT)之后,来自服务器机器的报告地址实际上只是它的内部地址。如果是这种情况,那么您的服务器实际上并没有任何 IP地址,而是在它自己的小网络之外。

再次,如果发生了什么,您将需要更改路由器的设置以为该计算机提供静态IP地址,然后将服务器端口转发到该特定计算机。当然,你如何做到这一点完全取决于你的路由器。

答案 1 :(得分:0)

这是我如何解决它。但是,我被建议使用apache或其他东西。

  1. 使用高级安全性转到Windows防火墙。
  2. 点击"新规则..."
  3. 点击端口
  4. 点击下一步
  5. 输入端口443
  6. 点击下一步
  7. 点击"允许连接"
  8. 点击下一步
  9. 点击下一步
  10. 输入名称
  11. 点击完成