python simpleHTTPServer 仅与本地机器一起工作

python simpleHTTPServer 仅与本地机器一起工作

我运行以下命令来运行 http 服务器

python -m SimpleHTTPServer

并收到以下消息

Serving HTTP on 0.0.0.0 port 8000 ...

但我无法在本地 wifi 网络中的另一台机器/手机上访问它,我尝试从本地机器访问它并能够访问它。

如果有人能找出问题所在,请告诉我。提前谢谢了。

答案1

SimpleHTTPServer默认情况下绑定到 IP 地址0.0.0.0。这是一个特殊地址,实际上意味着“任何地址”。如果它要绑定到例如localhost127.0.0.1,则只能从本地计算机连接到它,因为127.0.0.1属于回送设备。但是0.0.0.0,服务器与 的绑定loeth0以及您可能拥有的任何其他网络设备。

所以,你的小服务器应该无法从网络中的其他计算机访问。如果不能,则表明有其他东西(除了您的小型服务器)禁止了它,可能是防火墙。您可以使用nmap另一台计算机检查端口 8000 的状态(您可能需要安装nmap)。假设您的小型服务器在 IP 192.168.0.1 上运行,另一台计算机是 192.168.2.101。那么您可以从 192.168.2.101 执行

nmap -p 8000 192.168.0.1

输出应该是这样的

PORT     STATE SERVICE
8000/tcp open  http-alt

如果状态为“打开”,则端口可访问且有东西在那里监听,因此您的小型服务器应该是可访问的。

如果状态为“关闭”,则表示端口可访问,但没有任何监听。在这种情况下,可能是您的服务器已终止,或者您混淆了 IP 或端口号。

如果状态为“过滤”,则说明存在某种 IP 过滤防火墙,阻止您访问您的小型服务器。

答案2

使用以下命令启动 SimpleHTTPServer 后python -m SimpleHTTPServer 8000

您需要在本地网络内的终端上找到服务器的 IP 地址,方法是:

Linux/Mac:ifconfig
Windows:ipconfig

然后在您的移动设备上尝试访问ip_address:PORT
例如:192.168.1.5:8000

相关内容