我运行以下命令来运行 http 服务器
python -m SimpleHTTPServer
并收到以下消息
Serving HTTP on 0.0.0.0 port 8000 ...
但我无法在本地 wifi 网络中的另一台机器/手机上访问它,我尝试从本地机器访问它并能够访问它。
如果有人能找出问题所在,请告诉我。提前谢谢了。
答案1
SimpleHTTPServer
默认情况下绑定到 IP 地址0.0.0.0
。这是一个特殊地址,实际上意味着“任何地址”。如果它要绑定到例如localhost
或127.0.0.1
,则只能从本地计算机连接到它,因为127.0.0.1
属于回送设备。但是0.0.0.0
,服务器与 的绑定lo
,eth0
以及您可能拥有的任何其他网络设备。
所以,你的小服务器应该无法从网络中的其他计算机访问。如果不能,则表明有其他东西(除了您的小型服务器)禁止了它,可能是防火墙。您可以使用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