同局域网设备无法访问本地Python Web服务问题排查
问题根源
你做的防火墙放行、网络设置操作都没有问题,连接失败的核心原因是Python服务的监听地址配置错误。
代码中hostName = "localhost"的配置,会让服务仅绑定本地环回接口127.0.0.1,只响应来自localhost的访问请求,所有发往你本机局域网IPv4地址的请求都不会被服务接收,自然无论是本机用IPv4访问,还是同局域网的移动设备访问,都会连接失败。
修复步骤
- 修改服务绑定地址
将代码中的hostName = "localhost"修改为hostName = "0.0.0.0",该配置会让服务绑定本机所有网络接口,同时支持本地localhost访问、本机IPv4访问、同局域网其他设备访问。
修改后的服务启动核心代码如下:
if __name__ == "__main__": hostName = "0.0.0.0" serverPort = 8000 webServer = HTTPServer((hostName, serverPort), MyServer) print("Server started http://%s:%s" % (hostName, serverPort)) try: webServer.serve_forever() except KeyboardInterrupt: pass webServer.server_close() print("Server stopped.")
- 本地验证
保存修改后重启Python服务,先在本机浏览器输入http://[你的本机局域网IPv4]:8000,确认页面可以正常打开。 - 移动端验证
确认安卓设备和电脑连接至同一个WiFi网络,在手机浏览器输入和本地验证相同的地址,即可正常访问服务。
你之前配置的专用网络、防火墙放行Python、开放8000端口规则均为有效配置,无需额外调整。
内容的提问来源于stack exchange,提问作者HelpersCoockies
相关产品推荐
相关产品推荐

