gpt4 book ai didi

django - 为什么我可以连接到http ://127. 0.0.1 :8000/but not to http://192. 168.1.6/

转载 作者:行者123 更新时间:2023-12-02 02:38:08 26 4
gpt4 key购买 nike

我在本地 IP 地址为 192.168.1.6 的计算机上运行 OS X Mountain Lion(由网络实用程序和 ifconfig 报告),并且在我想要的端口 8000 上运行本地 (Django) 开发 Web 服务器从在同一台计算机上运行 guest 操作系统的虚拟机进行连接。

在主机操作系统(即,在地址为 192.168.1.6 的机器上运行的 OS X)上,我可以通过浏览器导航到 127.0.0.1:8000 连接到我的测试 Web 服务器;或本地主机:8000;但使用机器的本地 IP 地址时则不然。这就是让这变得更加令人困惑的原因:

  • 路由器没有过滤端口;并且,为了确定,我已将其设置为显式将端口 8000 和 22 转发到 192.168.1.6;说到端口 22,
  • 当我启动 SSH 服务时,我可以通过 ssh 192.168.1.6 连接(从命令行)
  • 这不是浏览器问题,因为我也无法 telnet 到 192.168.1.6 端口 8000(连接被拒绝),而我可以 telnet 到 127.0.0.1 端口 8000,而且我还可以 telnet 到192.168.1.6端口22
  • 防火墙已设置为关闭(如系统偏好设置中所报告),但为了更加安全,我还设置了 ipfw 规则以允许所有内容通过

以下是 ipfw 规则:

00100 allow tcp from any to any dst-port 8000
65535 allow ip from any to any

这里是我的测试服务器确实正在监听该端口的额外确认:

netstat -an | grep 8000
tcp4 0 0 127.0.0.1.8000 *.* LISTEN

所以这是怎么回事?不知何故,端口 22 的处理方式与端口 8000 不同,但在我能想到的每个地方都找不到这些差异。为什么我无法使用 native IP 地址进入该机器的 8000 端口?

最佳答案

当你启动 Django 开发服务器时,你需要明确给出地址:

python manage.py runserver 192.168.1.6:8000

或者,如果您希望服务器在您可以使用的所有接口(interface)上运行:

python manage.py runserver 0.0.0.0:8000

在其他情况下,Django 开发服务器默认仅在本地界面上运行。

关于django - 为什么我可以连接到http ://127. 0.0.1 :8000/but not to http://192. 168.1.6/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19167178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com