如何通过本地IP和端口在手机访问Django(ASGI)网站?已操作仍无法访问
确认ASGI服务器的绑定地址
启动ASGI服务器(比如uvicorn或daphne)时,必须绑定到0.0.0.0或你的局域网IP(10.0.0.6),不能用默认的127.0.0.1。举个例子:- uvicorn命令:
uvicorn myproject.asgi:application --host 0.0.0.0 --port 8000 - daphne命令:
daphne -b 0.0.0.0 -p 8000 myproject.asgi:application
绑定127.0.0.1的话,服务器只会响应本地请求,局域网设备根本连不上。
- uvicorn命令:
检查设备是否在同一局域网
确保手机和电脑连的是同一个WiFi(或同一有线网络)。可以在手机上ping电脑IP试试(安卓用终端工具输入ping 10.0.0.6,苹果可借助第三方工具),如果ping不通,要么是IP填错了,要么路由器开了设备隔离。验证防火墙规则是否真的生效
你创建的入站规则要明确覆盖8000端口,并且应用到私有网络(局域网属于私有网络范畴)。可以临时关闭Windows防火墙测试,如果能访问了,说明之前的规则配置有误——比如只允许了TCP但漏了UDP,或者网络类型选成了公网。另外,别忘了检查杀毒软件自带的防火墙,比如360、McAfee这类,它们也可能拦截请求。检查Django的ALLOWED_HOSTS配置
打开settings.py,确保ALLOWED_HOSTS里包含你的局域网IP10.0.0.6,或者测试环境下直接设为['*'](生产环境别这么干)。如果没加这个IP,Django会直接拒绝请求,手机就会显示无法打开页面。确认ASGI服务器状态和端口占用情况
看看电脑上的服务器终端有没有报错,比如启动失败、端口被占用。用Windows命令netstat -ano | findstr :8000检查8000端口是否被其他程序占用,如果是,换个端口(比如8080)再试。先测试根路径是否能访问
先在手机上访问http://10.0.0.6:8000,如果能看到Django默认页或你的根路径页面,那问题出在/home/路径上——比如URL配置错误、视图逻辑有问题。如果根路径也打不开,还是回到前面的网络或服务器绑定问题排查。
内容的提问来源于stack exchange,提问作者liran bratt

