我在 Raspberry Pi 上运行了一个简单的 Web 服务,使用 Django 开发服务器 (manage.py runserver)。我知道它在运行,因为当我curl localhost:8000
在 Pi 上运行时,我得到了我网站的 HTML 内容。当我在 Pi 上运行时netstat -tnl
,我得到了以下内容:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
但是,当我尝试从与 Pi 位于同一本地网络上的另一台计算机(使用http://<local IP of the pi>:8000
)连接到该网站时,我得到的是connection refused
。 (我尝试过两者curl
和网络浏览器。)
我专门通过 SSH 连接到 Pi,然后之类的curl http://www.google.com
工作,所以我知道 Pi 已连接到网络。
我在 Pi 上安装了最新版本的 Raspbian。(我昨天刚重新安装了它,以为这可能会解决这个问题)
我如何连接到该网站?我需要在 Pi 上打开端口吗?
我对连接到本地网络之外的该 Web 服务器不感兴趣,因此我认为我不应该处理端口转发。
答案1
默认情况下,Django 开发服务器绑定到 127.0.0.1,如您在本地地址字段。这意味着它仅接受来自 Pi 的连接。
当你使用0.0.0.0(维基百科),它就像一个通配符,意味着你本地网络上的每个人都可以访问它。
因此,为了从另一台机器访问您的服务器,您需要运行以下命令:python manage.py runserver 0.0.0.0:8000
。